将字典作为没有 JSON_PARSE 的 Json 字符串插入“有效”,但随后该列包含一个字符串,并且我无法访问列内的各个属性,例如“testdict”。 我正在尝试做类似的事情,但只找到有关如何通过 pandas 完成此操作的文档:
psycopg2.extras.execute_values(
cursor,
"""
INSERT INTO schema.table (
id,
col2,
json_col
)
VALUES %s
""",
[(1,2,json.dumps({'testdict': 'foobar'}))],
template=(%s, %s, JSON_PARSE(%s)),
page_size=800,
)
看起来我已经非常接近解决方案了,只是不知道模板参数。
这可能不是最好的方法,因为它需要将字典转换为字符串然后再转换回对象。
psycopg2.extras.execute_values(
cursor,
"""
INSERT INTO schema.table (
id,
col2,
json_col
)
VALUES %s
""",
[(1,2,json.dumps({'testdict': 'foobar'}))],
template=(%s, %s, JSON_PARSE(%s)::SUPER),
page_size=800,
)