![](/img/trans.png)
[英]psycopg2/python copy data from postgresql to Amazon RedShift(postgresql)
[英]Python array manipulation from psycopg2 PostgreSQL query
我正在使用psycopg2进行psql查询。
cur.execute("SELECT DISTINCT name FROM product")
result = cur.fetchall()
print(result)
[('product1',), ('product2',), ('product3',), ('product4',)]
我需要重新格式化此数组以创建API端点。 现在,它是一个元组列表,其中元组的第二个值为空。 一个简单的循环遍历就可以完成工作。
results=[]
for item in result:
results.append(item[0])
print(results)
['product1','product2','product3','product4']
但是,此查询可能会变得很大。 遍历整个列表会增加查询的延迟,这似乎没有必要。 有没有办法在恒定时间内展平数组,或者有其他psycopg2函数以我需要的格式返回?
汇总查询:
query = '''
select array_agg(distinct name)
from product
'''
cursor.execute(query)
rs = cursor.fetchall()[0][0]
print rs
输出:
['product1', 'product2', 'product3', 'product4']
与数据库查询相比,转换列表所需的时间可以忽略不计。 但是您无需直接创建列表:
cur.execute("SELECT DISTINCT name FROM product")
result = [item for item, in cur]
print(result)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.