2012-03-17 72 views
3

假设我查询数据库这样的:如何从adodbapi查询返回的行中获取列名?

import adodbapi 
conn = adodbapi.connect(connStr) 
tablename = "[salesLT].[Customer]" 

cur = conn.cursor() 

sql = "select * from %s" % tablename 
cur.execute(sql) 

result = cur.fetchall() 

的结果是,我认为,SQLrow对象序列。

如何获取查询返回的列名列表或序列?

我觉得是这样的:

row = result[0] 
    for k in row.keys(): 
     print(k) 

...但.keys()是不是。

也不.columnNames()

回答

11

cur.description是一个只读属性,其中包含7元组看起来像:

 
(name, 
type_code, 
display_size, 
internal_size, 
precision, 
scale, 
null_ok) 

因此,对于列名,你可以这样做:

col_names = [i[0] for i in cur.description] 

参考:http://www.python.org/dev/peps/pep-0249/

0

还有一个columnNames属性的集合的SQLrow对象。

所以,

for k in result.columnNames: 
    print(k)