首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从psycopg2游标获取列名列表?

如何从psycopg2游标获取列名列表?
EN

Stack Overflow用户
提问于 2012-04-21 03:18:43
回答 10查看 119.6K关注 0票数 189

我想要一种直接从所选列名生成列标签的通用方法,并回想一下python的psycopg2模块支持此功能。

EN

回答 10

Stack Overflow用户

发布于 2012-04-21 03:20:11

来自Mark Lutz的"Programming Python“:

代码语言:javascript
复制
curs.execute("Select * FROM people LIMIT 0")
colnames = [desc[0] for desc in curs.description]
票数 289
EN

Stack Overflow用户

发布于 2017-09-01 20:20:32

你可以做的另一件事是创建一个光标,这样你就可以通过它们的名称来引用你的列(这是我最初进入这个页面的原因):

代码语言:javascript
复制
import psycopg2
from psycopg2.extras import RealDictCursor

ps_conn = psycopg2.connect(...)
ps_cursor = psql_conn.cursor(cursor_factory=RealDictCursor)

ps_cursor.execute('select 1 as col_a, 2 as col_b')
my_record = ps_cursor.fetchone()
print (my_record['col_a'],my_record['col_b'])

>> 1, 2
票数 68
EN

Stack Overflow用户

发布于 2014-03-04 20:48:30

要在单独的查询中获取列名,可以查询information_schema.columns表。

代码语言:javascript
复制
#!/usr/bin/env python3

import psycopg2

if __name__ == '__main__':
  DSN = 'host=YOUR_DATABASE_HOST port=YOUR_DATABASE_PORT dbname=YOUR_DATABASE_NAME user=YOUR_DATABASE_USER'

  column_names = []

  with psycopg2.connect(DSN) as connection:
      with connection.cursor() as cursor:
          cursor.execute("select column_name from information_schema.columns where table_schema = 'YOUR_SCHEMA_NAME' and table_name='YOUR_TABLE_NAME'")
          column_names = [row[0] for row in cursor]

  print("Column names: {}\n".format(column_names))

要在与数据行相同的查询中获取列名,可以使用游标的字段:

代码语言:javascript
复制
#!/usr/bin/env python3

import psycopg2

if __name__ == '__main__':
  DSN = 'host=YOUR_DATABASE_HOST port=YOUR_DATABASE_PORT dbname=YOUR_DATABASE_NAME user=YOUR_DATABASE_USER'

  column_names = []
  data_rows = []

  with psycopg2.connect(DSN) as connection:
    with connection.cursor() as cursor:
      cursor.execute("select field1, field2, fieldn from table1")
      column_names = [desc[0] for desc in cursor.description]
      for row in cursor:
        data_rows.append(row)

  print("Column names: {}\n".format(column_names))
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10252247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档