2016-09-22 2 views
0

TeradataデータベースへのODBCにPython(3.4.3)を使用しています(可能な場合)私は彼らのリストのインデックスの代わりにそれらを介してループしているように名前。 (私がテーブルを変更した場合)VBAのレコードセットのように!構文(レコードFIELD_NAME!)Teradataのフィールド名でフィールド(列)を参照する

私はこのコードを実行する場合は、

udaExec = teradata.UdaExec (appName="HelloWorld", version="1.0", logConsole=False) 
session = udaExec.connect(method="odbc", dsn="TEST") 
cursor = session.cursor() 
rows = list(cursor.execute("SELECT TOP 1 * FROM RES_TBL")) 
print(rows) 

私の出力は次のとおりです。[<teradata.util.Row object at 0x000000000402D080>]

私はそれらを見ることができるように、私は最終的には、リスト内の文字列として各行を保存することができました\ messそれらと、しかし私はそれが大きいデータセットのための悪い考えのように感じる。これは良い質問ではない場合、私は残念ですが、何かが役立ちます!

私の完全なコードは現在、次のとおりです。これを理解しようとしている他の誰のための

import teradata 
import pyodbc 
import json 
udaExec = teradata.UdaExec (appName="HelloWorld", version="1.0", logConsole=False) 
session = udaExec.connect(method="odbc", dsn="TEST") 
cursor = session.cursor() 
rows = list(cursor.execute("SELECT TOP 1 * FROM RES_TBL")) 
print(rows) 
for row in session.execute("SELECT TOP 1 * FROM RES_TBL"): 
    testlist = [] 
    testlist.append(str(row)) 
    print(testlist) 

答えて

0

こんにちは、私はそれがw00t解決しました!

私はここで役立つ素晴らしいリンクを見つけました。これらのリンクにはいくつかのプログラミングウィザーズがあります。私はたくさんのことを学びました!ここで return SQL table as JSON in python

Output pyodbc cursor results as python dictionary

http://developer.teradata.com/tools/reference/teradata-python-module

ソリューションです!

import teradata 
import pyodbc 
import json 
###Dev environment for learning teradata interactions with python 

#form the ODBC connection to teradata 
try: 
    udaExec = teradata.UdaExec (appName="HelloWorld", version="1.0", logConsole=False) 
    session = udaExec.connect(method="odbc", dsn="TEST") 
    cursor = session.cursor() 
    columnNames = [] 
    rows = cursor.execute("SELECT TOP 1 * FROM RES_TBL") 
    for col in rows.description: 
     columnNames.append(col[0]) 

    for row in rows: #session.execute("SELECT TOP 1 * FROM RES_TBL"): 
     testlist = [] 
     testlist.append(dict(zip(columnNames, row))) 
    print(testlist) 
except: 
    raise 
finally: 
    cursor.close() 
1

はたぶん、あなたはいくつかの理由でパンダを使用する必要はありませんが、そうでなければ、私はこれをお勧めしたい:

import pandas ad pd 
cursor = session.execute(SQL_script) 
df = pd.DataFrame.from_records(cursor) 
cols = [] 
for row in cursor.description: 
    cols.append(row[0]) 
df.columns = cols 
session.close() 
+0

私はパンダのことを聞いたことがありませんが、それを研究しなければなりません!投稿してくれてありがとう! – BLang

+0

Pythonでテーブルを操作する場合は、Pandasを使用します。これまで私が全力を尽くすための非常に強力な図書館です。 – Diego

関連する問題