首页 > 解决方案 > peewee.InterfaceError:保存大量数据时绑定参数错误

问题描述

我在我的数据库中创建了许多记录,如下所示:

Subproducts.create(mf_id=mf_id, co=co, mf_binary=mf_binary_data.getbuffer())

mf_binarytype is io.BytesIO()- 它是收集到 zipfile 中的二进制文件的二进制表示

我已经使用这种方法成功地创建了许多记录,但是我遇到了一个特定数据集的问题。它比其他的要大,大约需要 1.2GB。当我尝试将其保存在 DB 中时,会发生以下错误。 peewee.InterfaceError: Error binding parameter 2 - probably unsupported type.

我模型中的 mf_binary 字段是peewee.BlobField(default=b'0')

如何将此类数据存储在 peewee 数据库中?

标签: pythondatabaseormzipfilepeewee

解决方案


调用getbuffer()返回一个memoryview对象,该对象显然不受底层数据库驱动程序的支持(顺便说一句,它是哪一个?)。这InterfaceError是由您的数据库驱动程序而不是 Peewee 引发的,这表明问题来自您的驱动程序不了解如何处理memoryview对象。

你最好的选择是使用mf_binary_data.getvalue(),它应该返回一个bytes对象。


推荐阅读