类型错误:无法将 psycopg2.extensions.Binary 转义为二进制

2023-12-27

我尝试通过 sqlalchemy 将二进制文件存储到 postgresql 中,并且文件是从客户端上传的。 对错误消息进行了一番谷歌,让我明白了这个源文件 https://github.com/psycopg/psycopg2/blob/master/psycopg/adapter_binary.c:“包装的对象不是字节或缓冲区,这是一个错误”

   binaries = []
    for f in request.files.values():
        if f and allowed_file(f.filename):
            fn = secure_filename(f.filename)
            file_path = os.path.join(basedir, fn)
            f.save(file_path)
            #data = f.read()
            data = open(fn, 'rb').read()
            binaries.append(psycopg2.Binary(data))
            f.close()
    #does the escaping
    mytable=mytable(
    ...,
    document1 = binaries[0]
    ...
    )
    #Model
    class mytable(mydb.Model):
      document1 = mydb.Column(mydb.LargeBinary())

将文件中的字节转换为psycopg2.Binary是不必要的。当 SQLAlchemy 将语句和值发送到数据库时(使用 DBAPI 连接器,在本例中为 psycopg2),它将自动发生。

就像是

with open(fn, 'rb') as f:
    bytes_ = f.read()
    instance = MyModel(document1=bytes_)
    session.add(instance)
    session.commit() 

适用于 Python2 和 Python3、SQLAlchemy 1.3.x,从引擎生成以下输出:

2020-09-06 10:39:27,775 INFO sqlalchemy.engine.base.Engine INSERT INTO mytable (document1) VALUES (%(document1)s) RETURNING mytable.id
2020-09-06 10:39:27,775 INFO sqlalchemy.engine.base.Engine {'document1': <psycopg2.extensions.Binary object at 0x7f8ea012ff60>}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型错误:无法将 psycopg2.extensions.Binary 转义为二进制 的相关文章

随机推荐

  • 当数据形状为(x,y,z)时如何进行聚类?

    假设我有 10 个单独的观测值 每个观测值的大小为 125 59 我想根据这 10 个观测值的 2d 特征矩阵 125 59 对它们进行分组 这是否可以在不将每个观测值展平为 125 59 1D 矩阵的情况下实现 我什至无法实现 PCA 或
  • Promtail 错误管道阶段只能包含一个键

    尝试设置 Promtail 时出现以下错误 level error ts 2020 11 27T06 10 30 310583Z caller main go 104 msg 创建 promtail 时出错 error 无法创建文件目标管理
  • C/C++ 中的非线程安全文件 I/O

    在解决我们应用程序中的一些性能问题时 我发现 C 的stdio h函数 至少对于我们的供应商来说 C 的fstream类 是线程安全的 结果 每次我做一些简单的事情时fgetc RTL 必须获取锁 读取一个字节 然后释放锁 这对性能不利 在
  • 如何更改 UISearchBar +iPhone 中显示的取消按钮的默认文本

    我正在开发一个应用程序 我想更改搜索栏中搜索字符串的文本 我想更改搜索栏旁边显示的取消按钮的文本 在搜索栏中输入任何字符串之前 我们会将搜索字符串作为默认字符串 我想更改该字符串的文本 当我们单击该搜索栏时 我们会在搜索栏旁边看到一个取消按
  • Django:从日期时间字段查询时间

    在基于 Django 的 postgresql 数据库上 如何按时间过滤日期时间字段 如下所示 class Foo models Model start date models DateTimeField end date models D
  • Objective C 项目中的 Xcode 8.3 Swift 版本错误 (SWIFT_VERSION)

    我在纯 Objective C 项目中使用 Xcode 8 3 时遇到以下错误 我无法找到解决方案 我的构建设置中没有快速参数 而且我也无法在网上找到任何解决方案 有任何想法吗 几天前构建得很好 我能看到的唯一区别是 xcode 更新了 S
  • UnlockField 在 CakePHP 中不起作用

    只是想制作一个非常标准的用户编辑页面 密码 和 重新密码 开始隐藏 但可以通过单击 编辑密码 按钮将其打开 但是 我不断收到来自安全组件的 auth 黑洞错误 Per CakePHP 书 http book cakephp org 2 0
  • 如何创建Facebook风格的固定状态栏?

    我想通过 Web 表单创建固定状态栏以向用户显示各种状态 消息 通知 我可以使用固定 CSS 属性 但我想在 6 7 和 Firefox 中实现 以及所有浏览器 这是关于如何修复底部页面上的元素 栏的快速且简单的解决方案 jixedbar
  • Nashorn JS 对象对 java.util.Map 有效吗?

    我有java方法 void someMethod String str Map map 从 JS 调用这个方法 var map new Object map key1 val1 someMethod str map 例外 java lang
  • 我如何制作一个左/右侧圆润如圆的按钮

    我正在尝试制作一个侧面呈圆形的按钮 但是当我更改屏幕大小时 按钮侧面左侧呈圆形 不会保持纵横比 我认为 我想要每个尺寸的下一个切换按钮 如何为每个分辨率制作一个边角为圆角的 XML 我已阅读此内容 但这不是解决方案 如何让按钮的角变圆 ht
  • Tomcat应用部署监听器

    我想知道如何监听 Tomcat Web 应用程序部署 我希望每次从容器中取消部署应用程序或将应用程序部署到容器时都调用我的侦听器 我已经调查了一下并发现一些听众 即LifecycleListener可以通过 JMX 注册 但不幸的是 这个监
  • 在 iOS 中创建“流布局”类型布局的最佳/最简单方法是什么

    Q1 我有三个控件 UILabel UIButton and UILabel在一行中 我想以编程方式将它们一个接一个地排成一行 没有任何间隙 类似于Java Android Flowlayout 布局 因为每个控件上的文本长度会因用户操作而
  • 使用 Python 的 Mechanize 模块验证 br.submit()

    只是尝试使用 mechanize 登录网站 当我打印 br form 时 我可以看到我的凭据输入到我的表单中 但我不知道如何正确提交表格 我使用 br submit 并尝试通过打印 br title 来验证它是否已进入下一页 但出现的标题是
  • 使用 os.kill() 后如何找出子进程何时终止?

    我有一个 Python 程序 准确地说 是一个 Django 应用程序 它使用以下命令启动子进程subprocess Popen http docs python org 2 7 library subprocess html subpro
  • 如何在Windows上自动启动virtualenv环境

    谁能给我一些关于在 Windows 上自动启动 virtualenv 应用程序的建议 我有一个在 Gunicorn 上运行的小型 Flask 应用程序 运行良好 但是如何将其投入生产呢 我不想手动进入并 cd 进入目录并输入 activat
  • 如何排除图例中的系列 (Flex)

    在弹性图表中 我想画一些与特定系列相关的 参考线 之类的东西 因此 这些线不是独立的系列 不应在图例中显示 是否可以从图表图例中排除某些系列 谢谢 我详细阐述了 Luis B 的答案 使其动态地反映在折线图的数据提供者上 这样 图例仅显示图
  • 在 Java 中使用正则表达式查找重复模式

    我正在使用正则表达式来匹配以下字符串 String sample1 key value key value key value key value 正如您所看到的 key value 定期重复 唯一的分隔符是 管道 注意事项 键 gt 只是
  • 为什么“mvn verify”不运行我的集成测试?

    我有一个多模块项目 并且在根 pom 中定义了故障保护 如下所示
  • TargetName 属性无法在 Style Setter 上设置,那么它是如何设置的呢?

    过去一周我一直在探索 WPF 所以它对我来说仍然很陌生 我正在做的事情之一是简单的动画 在本例中是一个弹跳的笑脸 我的攻击计划是 做一个笑脸 我已经做到了这一点 计算一个简单对象的弹跳动画 我已经做到了这一点 抽象该动画 以便它可以在多个地
  • 类型错误:无法将 psycopg2.extensions.Binary 转义为二进制

    我尝试通过 sqlalchemy 将二进制文件存储到 postgresql 中 并且文件是从客户端上传的 对错误消息进行了一番谷歌 让我明白了这个源文件 https github com psycopg psycopg2 blob mast