2015-11-13 46 views
3

這裏是Python的全部noob。我正在寫一個針對sql server local db的腳本,並且不能根據列名調用值。pypyodbc無法使用SQL Server本地數據庫引用列名稱

cnxn = pypyodbc.connect('Driver={SQL Server Native Client 11.0};Server=(localdb)\database;integrated security = true') 
cursor = cnxn.cursor() 
cursor.execute("SELECT username FROM [students].[dbo].[users]") 
rows = cursor.fetchall() 
for row in rows: 
    print (row.username) 
cnxn.close() 

返回AttributeError的: '行' 對象沒有屬性 '用戶名'

print (row) 

轉儲數據預期。並修改代碼爲:

cursor.execute("SELECT username FROM [students].[dbo].[users]") 
rows = cursor.fetchall() 
x=0 
for row in rows: 
    print (row.cursor_description[x][0]) 
cnxn.close() 

返回每個記錄的用戶名。

爲什麼我不能調用row.username?

回答

4

使用print (row["username"])

pypyodbc不支持列屬性爲pyodbc呢,只有一列集合,您可以通過索引獲取或它的頭名。

pyodbc使用row.attribute語法,pypyodbc使用row["attribute"]語法。

+1

謝謝@krtek - 這個工作很完美。 – edvan22

+1

pypyodbc使用小寫字母來表示屬性名稱 – Henrik

相關問題