我想在包含sqlite3
的数据库中插入二进制数据。
compressed = zlib.compress(pickle.dumps(foo))
database.insert(cursor, "bar", config=compressed)
此处,database
来自另一个类的另一个模块,执行execute
。在该类中,命令如下所示:
cursor.execute('''insert into {} {} values {}'''.format(table,columns,entries))
但是,我遇到了两个不同的问题,都是插入二进制数据:
首先,错误会说
sqlite3.OperationalError: near '''long binary data here''' syntax error
我是否无法将长二进制数据直接存储到sqlite3
?
其次,我尝试使用sqlite3.Binary()
,但当我尝试在单独的类中打印出二进制数据时,这给了我类似<memory at 0x7fd60e327108>
的内容。尝试buffer()
也没有帮助。
考虑到这两个问题,我如何将二进制数据存储到sqlite3
表中?我在我的函数中使用**kwargs
;这实际上不是我在函数中使用的唯一参数。
此外,其他不涉及二进制数据的参数(简单字符串和浮点值)不会引发错误。
更新:我发现腌制数据中有一些特殊字符,但我不知道如何存储它们。