2016-09-22 114 views
0

我正在使用python(3.4.3)將ODBC導入到Teradata數據庫(對此很新)我想知道(如果可能)通過字段引用行的值名稱,因爲我循環他們而不是他們的列表索引。 (如果我更換我的表格)就像在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>]

我最終能各行作爲字符串存儲在一個列表中,這樣我可以看到他們\與他們混淆,但我覺得這對大數據集來說不是個好主意。如果這不是一個好問題,我很抱歉,但有什麼幫助!

我的全部代碼目前是:

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

你好其他任何人正在試圖弄清楚這一點,我已經解決了IT 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