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

时间:2016-10-17 07:08:41

标签: python vertica

我正在尝试通过sql查询从python中的vertica数据库中提取数据时提取列名。我正在使用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 个答案:

答案 0 :(得分:1)

两种方式:

首先,如果你想要列列表,你可以访问dict的键,这基本上就像你拥有的那样,但更短:

ColumnList = temp[0].keys()

其次,你可以访问光标的字段列表,我认为这是你真正想要的:

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

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

答案 1 :(得分:0)

如果我没有错,你会询问每一栏的标题。 您可以使用“class hp_vertica_client.cursor”的数据描述符来完成此操作。 在这里能找到它 : https://my.vertica.com/docs/7.2.x/HTML/Content/python_client/cursor.html