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

使用sqlite3在Python中获取blob最简洁的方法是什么?,python,python-2.7,sqlite,Python,Python 2.7,Sqlite,我试图使用Python2.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 execute只是

我试图使用Python2.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

execute只是返回某种游标对象,我不确定如何获取数据。我在一个文档页面上看着游标对象方法,我的眼睛有点呆滞。。。我不太熟悉在Python中使用SQLite3 DBs,非常感谢您的任何建议或想法!非常感谢

不要使用游标的返回值。execute();通常情况下,您完全忽略它(实际上,如果只返回一个也不返回的话,它会更像python)

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

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

嘿谢谢你的意见。我能够创建我的文件并获取数据:)快速问,提取是捕获整行还是仅捕获行的一部分?使用SQLite DB查看器可视化SQLite DB内容的几乎像电子表格一样的视图,然后在脑海中使用Python遍历它们,这让我的大脑在翻译中有些迷失。我能够成功地创建我的文件,虽然使用您的建议,所以谢谢!(这个SQLite的东西仍然有点让人困惑,尽管哈哈)fetch_one会获取SELECT中指定的任何列。