2016-09-22 3 views
0

Ich benutze Python (3.4.3) zu ODBC zu einer Teradata-Datenbank, (eher neu zu diesem Thema) Ich wundere mich (wenn möglich), Werte von Zeilen nach ihrem Feld zu verweisen Name, wie ich sie durchschlinge anstatt durch ihren Listenindex. (falls ich meine Tabellen ändere) Ähnlich wie ein Datensatz in VBA mit dem! Syntax (! Cord-FIELD_NAME)Referenzieren von Feldern (Spalten) nach Feldnamen in Teradata

Wenn ich diesen Code ausführen,

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) 

Meine Ausgabe ist: [<teradata.util.Row object at 0x000000000402D080>]

ich schließlich konnte jede Zeile als String in einer Liste speichern, so konnte ich sie sehen mit ihnen, aber ich fühle mich wie das ist eine schlechte Idee für größere Datensätze. Es tut mir leid, wenn das keine gute Frage ist, aber alles hilft !!

meine volle Code zur Zeit ist:

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) 

Antwort

0

Hallo für alle anderen, dass diese, um herauszufinden versucht, ich habe es w00t GELÖST!

Ich fand große Links für Hilfe hier, es gibt einige Programmier-Wizzards in diesen Links, ich lernte viel !! return SQL table as JSON in python

Output pyodbc cursor results as python dictionary

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

Hier ist die Lösung !!!

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

Vielleicht möchten Sie nicht aus irgendeinem Grund Pandas verwenden, aber sonst würde ich dies vorschlagen:

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

Ich habe noch nie von Panda gehört, aber wird es erforschen !! Vielen Dank für die Post !! – BLang

+0

Pandas ist ein Weg zu gehen, wenn Sie mit Tabellen in Python arbeiten möchten. Bis jetzt sehr mächtige Bibliothek für das, was ich tun muss. – Diego

Verwandte Themen