2016-10-17 107 views
1

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

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) 

欢呼

回答

1

两种方式:

首先,你可以,如果你想列列表刚刚访问字典的键,这基本上就像你有什么,但较短:

ColumnList = temp[0].keys() 

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

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

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