json - 如何在 Postgres 中调用带有 json 参数的函数

标签 json postgresql psycopg2 jsonb

我必须将一个 json 对象传递给一个函数,但它不起作用:

import psycopg2
cur.execute(" SELECT mrp_sp_insert_jobdef( %s )",(json(_jobdef),) )

TypeError: 'module' object is not callable

或者:

cur.execute(" SELECT mrp_sp_insert_jobdef( % )",(json.dumps(_jobdef),) )

ValueError: unsupported format character ' ' (0x20) at index 31

最佳答案

您可以使用包装器 psycopg2.extras.Json(adapted, dumps=None) , 例子:

import psycopg2
from psycopg2.extras import Json

conn = psycopg2.connect("dbname=test user=postgres password=password")
cur = conn.cursor()

_jobdef = {'id': 1, 'name': 'product', 'amount': 230}
cur.execute("SELECT mrp_sp_insert_jobdef( %s )", (Json(_jobdef),) )

关于json - 如何在 Postgres 中调用带有 json 参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52506879/

相关文章:

postgresql - 三元组索引 ORDER BY 优化

python - Psycopg2 单引号异常

python - 如何在 psycopg2 中将日期转换为字符串?

json - JOLT 规范根据字符串匹配删除数组元素

json - 错误 - jmeter.util.BeanShellInterpreter : Error invoking bsh method: eval Sourced file: inline evaluation of:

javascript - 将json对象解析为node.js中的字符串

json - Postgres JSON 到 JSONB

postgresql - 如何比较两个 TIMESTAMP 列以检查最多 15 分钟的差异?

python - 使用 Psycopg2 获得懒惰但可重复使用的游标

ios - 如何在按下按钮时发布 Alamofire JSON 请求?