我正在使用Postgres 9和Python 2.7.2以及psycopg2,并试图插入一个带有正确转义引号的字符串值array.样本:

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...
                      ^

我也try 过用Postgres的E和反斜杠一起逃逸,但还没有找到正确的组合.思想?

推荐答案

你必须让psycopg为你绑定参数:不要试图自己引用它们.

Psycopg会自动将python字符串列表转换为postgresarray.http://initd.org/psycopg/docs/usage.html元支票

Postgresql相关问答推荐

将real[]数组作为完整的浮点值从postquist返回

在 Age Viewer 上看不到 node 的第一个属性

将 postgres 从属提升为主 node

Rails Migration 使用转换将字符串转换为整数

从 Postgres 字段中的多个值中进行 Select

在 PostgreSQL 中返回插入的行

Rails:创建删除表级联迁移

如何为 JavaEE 应用程序中的 PostgreSQL 热备设置配置连接故障转移?

如何使用 pg_dump 或 psql 从 *.sql 恢复 PostgreSQL 表?

断言错误:Django-rest-Framework

如何将两个 PostgreSQL 列聚合到一个用括号分隔的数组

PostgreSQL CASE 在函数中的使用

如何确定 NULL 是否包含在 Postgres 的数组中?

plpgsql:使用 2 个 OUT 参数调用函数

postgresql:致命:password authentication failed for user "douglas"

django.db.utils.IntegrityError:duplicate key value violates unique constraint "django_content_type_pkey"

在 postgresql 中,如何在 jsonb 键上返回布尔值而不是字符串?

如何删除 Postgres 上的所有数据库?

Postgresql 对象 ID 和元组

PostgreSQL 中具有多个连接的 UPDATE 语句