2016-10-17 129 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] 

第二個更好,因爲即使結果爲空,它也會讓您看到列。