pypyodbc无法使用SQL Server Localdb引用列名

时间:2015-11-13 14:43:30

标签: python sql-server localdb

这里的总Python菜鸟。我正在编写一个针对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:'Row'对象没有属性'username'

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?

1 个答案:

答案 0 :(得分:5)

使用print (row["username"])

pypyodbc不支持pyodbc所属的列属性,只支持索引或其标题名称可以获取的列集合。

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