Python、Sqlite3 - 如何将列表转换为 BLOB 单元格

标签 python sqlite

将 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数据限制的注意事项:

http://effbot.org/zone/sqlite-blob.htm

关于Python、Sqlite3 - 如何将列表转换为 BLOB 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/537077/

相关文章:

python - 当 Pandas 图中的重叠条具有不同的宽度时,它们并不完全居中

python - 在同一个端口运行的两个 jupyter notebook

python - 如果没有为 io 传入缓冲区或路径,则必须显式设置引擎

django - 如何在sqlite3中正确导入和配置.csv表

android - SQLite 按 3 个字段排序并返回每个类别的前 1 个

sqlite - 检查后更新列

python - 使用 numpy 数组或列表中的值更新数据框中的行

Python MySQLdb 错误 - 是什么导致了这个

c++ - sqlite3 c/c++,获取聚合查询涉及的表名

java - SQLite 数据库中的大字符串