psycopg2-插入整数数组

psycopg2-插入整数数组,psycopg2,Psycopg2,我使用的是Postgres 9.2、Python 2.7.3、psycopg2.5.1 我有一个表,其中一个字段声明为'some_field int[]NOT NULL',我需要插入一些数据,所以我做了如下操作: cursor.execute('INSERT INTO some_table (some_field) VALUES (%s)', ([1, 2, 3], )) 但由于结果查询变为 INSERT INTO some_table (some_field) VALUES ('[1, 2,

我使用的是Postgres 9.2、Python 2.7.3、psycopg2.5.1

我有一个表,其中一个字段声明为'some_field int[]NOT NULL',我需要插入一些数据,所以我做了如下操作:

cursor.execute('INSERT INTO some_table (some_field) VALUES (%s)', ([1, 2, 3], ))
但由于结果查询变为

INSERT INTO some_table (some_field) VALUES ('[1, 2, 3]')
而不是

INSERT INTO some_table (some_field) VALUES (ARRAY[1, 2, 3])


是我遗漏了什么还是psycopg2错误?

第一段代码是正确的。要检查psycopg2生成的SQL,您可以始终使用
mogrify()
方法:

>>> curs.mogrify('INSERT INTO some_table (some_field) VALUES (%s)', ([1, 2, 3], ))
'INSERT INTO some_table (some_field) VALUES (ARRAY[1, 2, 3])'
然后,您可以使用
psql
尝试SQL并查找错误。如果发现psycopg2生成的查询无法在
psql
中执行,请报告错误

>>> curs.mogrify('INSERT INTO some_table (some_field) VALUES (%s)', ([1, 2, 3], ))
'INSERT INTO some_table (some_field) VALUES (ARRAY[1, 2, 3])'