0

Python 2.7 を使用して SQLite3.db ファイルのテーブルの行から BLOB 型 (PNG 画像を含む) を読み取り、そのデータを新しい画像ファイルに書き込もうとしています。これを達成する方法を理解するのに苦労しています。これは、本質的に私が達成したいことの実際のスクラッチ コードです...

c = conn.cursor()
data = c.execute("SELECT image_data FROM favicon_bitmaps WHERE index='26'")
x = open('C:\file.png', 'w')
x.write(data)
x.close

c.execute はある種のカーソル オブジェクトを返すだけで、データを取得する方法がわかりません。ドキュメンテーション ページの 1 つでカーソル オブジェクトのメソッドを調べたところ、目がくらみました... Python で SQLite3 DB を操作することにあまり慣れていません。ポインタや考えは大歓迎です! 本当にありがとう!

4

1 に答える 1

1

の戻り値を使用しないでくださいcursor.execute()。通常は、それを完全に無視します (実際には、None を返すだけの方がより Pythonic でした)。

代わりに、 Row オブジェクトを返す を.fetchone()呼び出した後にカーソルのメソッドを呼び出します。.execute()

c = conn.cursor()
c.execute("SELECT image_data FROM favicon_bitmaps WHERE index='26'")
data = c.fetchone()
with open('C:\file.png', 'wb') as x:
    x.write(data[0])
于 2013-05-01T20:12:08.860 に答える