使用sqlite3在Python中获取blob最简洁的方法是什么?

时间:2013-05-01 20:07:08

标签: python python-2.7 sqlite

我正在尝试使用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只返回某种游标对象,我不知道如何获取我的数据。我在其中一个文档页面上看了一下光标对象的方法,我的眼睛只是一点点......我不太熟悉在Python中使用SQLite3 DB,任何指针或想法都非常感谢!非常感谢!

1 个答案:

答案 0 :(得分:1)

不要使用cursor.execute()的返回值;通常你会完全忽略它(实际上,只要返回None就会更加Pythonic。)

相反,在调用.fetchone()之后调用游标的.execute()方法,它返回一个Row对象:

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])