【发布时间】:2014-01-08 17:54:15
【问题描述】:
我在 Python2.7 中使用 psycopg2 与 PostgreSQL 数据库进行交互。
psycopg2 首先将列表保存在数据库中的 varchar 字段中,然后我只需要返回相同的 Python 列表。
插入:
data = ['value', 'second value']
with psycopg2.connect(**DATABASE_CONFIG) as connection:
cursor = connection.cursor()
cursor.execute("INSERT INTO table_name (varchar_field) VALUES (%s)", (data)
connection.commit()
在 pgAdmin 中看起来像:{value, second_value}
然后我尝试做这样的事情:
with psycopg2.connect(**DATABASE_CONFIG) as connection:
cursor = connection.cursor()
cursor.execute("SELECT varchar_field FROM table_name")
for row in cursor:
for data_item in row: # here I want to iterate through the saved list (['value', 'second_value']), but it returns string: '{value, second_value}'
print data_item
我找到了possible solution,但我不知道如何在我的代码中实现它。
那么,如何从 sql ARRAY 类型中取回 Python 列表?
【问题讨论】:
-
varchar_field 的类型是什么?我希望它是一个数组,即像
varchar(4096)[]这样的东西。如果是简单的 varchar,则数组转换将不起作用。
标签: python sql postgresql psycopg2