Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

psycopg2でデータをINSERTする

前回に引き続き、psycopg2でデータをINSERTする方法です。

実際のところ

imageというbytea型のbyte_dataカラムを持っているテーブルに対し、バイナリデータを叩き込む方法は以下の通り。

import psycopg2

DSN = "dbname=postgres user=shuzo_kino"
SQL3 = "INSERT INTO image(byte_data)\
        VALUES (%(imagedata)s);"

with psycopg2.connect(DSN) as conn:
    with conn.cursor() as curs:
      postquery = {'imagedata': b'\xde\xad\xbe\xef'}
      curs.execute(SQL3, postquery)

bytearray型で叩きつける事もできます。

      postquery = {'imagedata': bytearray.fromhex("12deadbeef12ab41")}
      curs.execute(SQL3, postquery)