![](/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.