我将 Postgres 9 和 Python 2.7.2 与 psycopg2 一起使用,并尝试插入一个字符串值数组,并正确转义引号。示例:
metadata = {"Name": "Guest", "Details": "['One', 'Two', 'Three']"}
cur.execute("insert into meta values ('%s');" % metadata)
抛出异常:
psycopg2.ProgrammingError: syntax error at or near "One"
LINE 1: "Details": "['One...
^
我也试过使用 Postgres 的 E 和反斜杠一起转义,但还没有找到正确的组合。想法?
最佳答案
您必须让 psycopg 为您绑定(bind)参数:不要尝试自己引用它们。
Psycopg 自动将 python 字符串列表转换为 postgres 数组。检查https://www.psycopg.org/docs/usage.html#lists-adaptation
关于python - Postgres/psycopg2 - 插入字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6853161/