使用sqlite3

时间:2018-05-18 00:53:44

标签: python-3.x sqlite pickle

我想在包含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;这实际上不是我在函数中使用的唯一参数。

此外,其他不涉及二进制数据的参数(简单字符串和浮点值)不会引发错误。

更新:我发现腌制数据中有一些特殊字符,但我不知道如何存储它们。

0 个答案:

没有答案