2016-10-17 5 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

二つの方法:あなたが列リストが必要な場合は

まず、あなただけのdictのキーにアクセスすることができますが、これは基本的にあなたが持っているもののようですが、短い:

ColumnList = temp[0].keys() 

第二に、あなたは私はあなたが本当に探しているものだと思うこれは、カーソルのフィールドリストにアクセスすることができます

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

2番目の方が良いのは、結果が空であっても列を見ることができるからです。

0

私は間違っていないよ場合は、各列のタイトルについて尋ねています。 「hp_vertica_client.cursor」クラスのデータ記述子を使用すると、これを実行できます。 それはここで見つけることができます: https://my.vertica.com/docs/7.2.x/HTML/Content/python_client/cursor.html

+0

はい私はタイトルを探していますが、カーソルクラスを含まないvertica-python 0.6.8を使用していますが、少なくとも私はそれを見つけることができませんでした。 – valenzio

関連する問題