2012-09-27 77 views
0

這是我如何處理從一個數據庫中的記錄在PythonPython的處理SQL記錄

code.py

conn = cx_Oracle.connect('pass the connection string') 
cursor = conn.cursor() 
sql = "select * from emp table" 
cursor.execute(sql) 
result =cursor.fetchall() 

for row in result: 
    name = row[0] 
    age = row[1] 

問題:代替硬編碼的行[0],行[1],是有一種方法可以直接獲取列名稱 ?

回答

1

cursor具有.description屬性;它是一系列元組。每個元組描述結果中的一列,它的第一個值是名稱。

可以使用它來構造每一行的一個字典:

for x in result: 
    row = { d[0].lower(): col for (d, col) in zip(cursor.description, x) } 
    name = row['name'] 
    age = row['age'] 

.description屬性進行更詳細的描述Python DB API 2.0

+0

+1。你有兩個小錯別字,但基本的想法是完全正確的。 – abarnert

+0

@abarnert:謝謝修復。 :-) –

+0

字典= {} ..... dict1 = {d [0] .lower():山口用於拉鍊(d,列)(self.cursor.description,行)} – user1050619