我将 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 和反斜杠一起转义,但还没有找到正确的组合。想法?
原文由 Growth Mindset 发布,翻译遵循 CC BY-SA 4.0 许可协议
您必须让 psycopg 为您绑定参数:不要尝试自己引用它们。
Psycopg 自动将 python 字符串列表转换为 postgres 数组。检查 https://www.psycopg.org/docs/usage.html#lists-adaptation