使用 psycopg2 将 Python 字典插入 Super 类型的 Redshfit 列中

问题描述 投票:0回答:1

将字典作为没有 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,
)

amazon-redshift psycopg2
1个回答
0
投票

看起来我已经非常接近解决方案了,只是不知道模板参数。

这可能不是最好的方法,因为它需要将字典转换为字符串然后再转换回对象。

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,
)
© www.soinside.com 2019 - 2024. All rights reserved.