python - peewee.InterfaceError:保存大量数据时绑定参数错误
问题描述
我在我的数据库中创建了许多记录,如下所示:
Subproducts.create(mf_id=mf_id,
co=co,
mf_binary=mf_binary_data.getbuffer())
mf_binary
type is io.BytesIO()
- 它是收集到 zipfile 中的二进制文件的二进制表示
我已经使用这种方法成功地创建了许多记录,但是我遇到了一个特定数据集的问题。它比其他的要大,大约需要 1.2GB。当我尝试将其保存在 DB 中时,会发生以下错误。
peewee.InterfaceError: Error binding parameter 2 - probably unsupported type.
我模型中的 mf_binary 字段是peewee.BlobField(default=b'0')
如何将此类数据存储在 peewee 数据库中?
解决方案
调用getbuffer()
返回一个memoryview
对象,该对象显然不受底层数据库驱动程序的支持(顺便说一句,它是哪一个?)。这InterfaceError
是由您的数据库驱动程序而不是 Peewee 引发的,这表明问题来自您的驱动程序不了解如何处理memoryview
对象。
你最好的选择是使用mf_binary_data.getvalue()
,它应该返回一个bytes
对象。
推荐阅读
- java - 如何在文本中间聚焦
- android - 如何在 Kotlin 中使用 Koin 注入 ViewModel?
- ios - 如何从网站中提取和存储数据?
- swift - 如何使用自定义类型存储和检索变量
- gradle - gradle:如何强制执行整个子树的版本?
- angular - detectChanges 重置反应形式。在测试中管理表单值的正确方法是什么?
- python - 我有一个循环,我无法在 python 上结束
- r - 将森林图格式的元素合并为单个元素
- javascript - 在 Google Chrome 的 JavaScript 扩展中使用来自网站的数据
- javascript - 我如何通过 AWS 静态 IP 从动态 IP 网页运行 http 请求,因为端点 API 需要来自白名单 IP?