我正在尝试通过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)
欢呼声
答案 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