将 python 中的列表作为二进制数据(即 BLOB 单元格)转储到 sqlite3 数据库中的最优雅方法是什么?
data = [ 0, 1, 2, 3, 4, 5 ]
# now write this to db as binary data
# 0000 0000
# 0000 0001
# ...
# 0000 0101
最佳答案
Brian 的解决方案似乎符合您的需求,但请记住,使用该方法您只是将数据存储为字符串。
如果您想将原始二进制数据存储到数据库中(因此它不会占用太多空间),请将您的数据转换为 Binary sqlite 对象,然后将其添加到您的数据库中.
query = u'''insert into testtable VALUES(?)'''
b = sqlite3.Binary(some_binarydata)
cur.execute(query,(b,))
con.commit()
(出于某种原因,这似乎没有记录在 python 文档中)
这里有一些关于sqlite BLOB数据限制的注意事项:
关于Python、Sqlite3 - 如何将列表转换为 BLOB 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/537077/