【问题标题】:Psycopg2 invalid json when returning postgres query返回 postgres 查询时 Psycopg2 无效的 json
【发布时间】:2019-08-22 09:03:48
【问题描述】:

我正在使用 Django 访问我的 postgres 数据库中的存储函数。当我在 Postgres 中执行函数时,它返回双引号和有效的 json。但是,当我从 Django(使用 psycopg2)调用该函数时,双引号被删除,单引号替换它们。

似乎 psycopg2 正在后台对列表/字典进行某种类型的转换。但是,我需要保留 json。任何想法如何解决这个问题?

【问题讨论】:

    标签: python django psycopg2


    【解决方案1】:

    您可以通过使用register_default_json() 注册无操作函数来覆盖 psycopg2 自动转换 JSON 对象/数组的功能

    psycopg2.extras.register_default_json(loads=lambda x: x)
    

    引用自文档

    Psycopg 自动将 PostgreSQL json 数据转换成 Python 对象。我怎样才能收到字符串呢?最简单的避免方法 JSON解析是注册一个no-op函数 register_default_json():

    psycopg2.extras.register_default_json(loads=lambda x: x) 见 JSON 适应更多细节。

    补充阅读

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多