从Vertica数据库获得列名(标题)?

3

我正在尝试通过使用SQL查询从Vertica数据库中提取数据时,在Python中提取列名。我正在使用vertica-python 0.6.8。到目前为止,我正在创建第一行的字典,但我想知道是否有更简单的方法。这是我现在的做法:

import vertica_python
import csv
import sys
import ssl
import psycopg2

conn_info = {'host': '****',
             'port': 5433,
             'user': '****',
             'password': '****',
             'database': '****',
             # 10 minutes timeout on queries
             'read_timeout': 600,
             # default throw error on invalid UTF-8 results
             'unicode_error': 'strict',
             # SSL is disabled by default
             'ssl': False}

connection = vertica_python.connect(**conn_info)
cur = connection.cursor('dict')
str = "SELECT * FROM something WHERE something_happens LIMIT 1"
cur.execute(str)
temp = cur.fetchall()
ColumnList = []
for column in temp[0]:
    ColumnList.append(column)

干杯

2个回答

3

有两种方法:

首先,如果你想要列出字典的键值列表,你可以直接访问字典的键值,这与你原来的方式相似,但更加简短:

ColumnList = temp[0].keys()

其次,您可以访问光标的字段列表,我想这才是您真正需要的:

ColumnList = [d.name for d in cur.description]

第二个更好,因为即使结果为空,它也可以让你看到列。

0

是的,我正在寻找标题,但是我正在使用vertica-python 0.6.8版本,它不包括游标类,至少我找不到它。 - valenzio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接