2012-09-27 183 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

相关问题