Postgresql 如何使用psycopg2客户端从select查询中获取列标题?

Postgresql 如何使用psycopg2客户端从select查询中获取列标题?,postgresql,psycopg2,Postgresql,Psycopg2,我有一个python3代码: conn = psycopg2.connect( ... ) curr = conn.cursor() curr.execute(code) rows = curr.fetchall() 其中“code”具有select查询语句 执行此操作后,“行”列表将仅包含选定行值的列表。如何运行“curr.execute”以同时获得相应的列标题 意思是如果我说 Select col1, col2 from table Where some_condition; 我希望我的

我有一个python3代码:

conn = psycopg2.connect( ... )
curr = conn.cursor()
curr.execute(code)
rows = curr.fetchall()
其中“code”具有select查询语句

执行此操作后,“行”列表将仅包含选定行值的列表。如何运行“curr.execute”以同时获得相应的列标题

意思是如果我说

Select col1, col2 from table Where some_condition;

我希望我的“行”列表具有类似[['col1'、'col2']、[some_val_代表_col1,some_val_代表_col2]…]。获取这些列标题的任何其他方法也可以,但“代码”中的select查询不应更改。

您必须执行两个命令

  • 当前执行(“从人员限制0中选择*) colnames=[desc[0]表示游标中的desc.description]
  • 当前执行(代码)

  • 您可以按照

    找到解决方案:使用字典光标中提到的步骤进行操作。首先导入psycopg2&psycopg2.extras。然后在上面的代码中将“curr=conn.cursor()”更改为“curr=conn.cursor(cursor\u factory=psycopg2.extras.DictCursor)”。然后使用“for key in dict(行[0]):print(key)”-->打印所有列标题。确保缩进正确,并且“行”不是空列表。