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

Get column names (title) from a Vertica data base?

我试图在通过 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)

干杯

如果我没记错的话,您是在询问每栏的标题。 您可以使用 "class hp_vertica_client.cursor" 的数据描述符来做到这一点。 在这里能找到它 : https://my.vertica.com/docs/7.2.x/HTML/Content/python_client/cursor.html

两种方式:

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

ColumnList = temp[0].keys()

其次,您可以访问游标的字段列表,我认为这才是您真正要找的:

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

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