PostgreSQLのテーブルに、タイプがbytea
のカラムがあります。 SQLiteからそのテーブルを移植すると、問題が発生しました。生のバイナリデータをSQLクエリに渡す方法がわかりませんでした。私が使用するフレームワークはPyGreSQLです。私は多くの変換を避けるためにDB-API 2.0インターフェースに固執したいと思います。
古典的なもの(ドル記号のパラメータ)やSQLite(疑問符のパラメータ)と違って、そのインタフェースは型(%-formattingを古いPythonのように)を指定する必要があります。
私が渡したいデータは、open()
メソッドで'rb'
フラグを使用してバイナリで読み取られたPNGファイルです。
クエリコードは次のようになります。BytestringをPyGreSQLに渡すには?
db = pgdb.connect(args)
c = db.cursor()
c.execute('INSERT INTO tbl VALUES (%b)', (b'test_bytes',))
これはエラーunsupported format character 'b' (0x62) at index 54
を与え、フォーマットが発生することはできません。この問題を解決するために何ができましたか?