行作为字典 - pymssql

Maj*_*imi 5 python dictionary pymssql

我想在 pymssql 中接收作为字典的行。在 python-idle 中我跑了:

>>> conn = pymssql.connect(host='192.168.1.3', user='majid', password='123456789', database='GeneralTrafficMonitor', as_dict=True)
>>> cur = conn.cursor()
>>> cur.execute('SELECT TOP 10 * FROM dbo.tblTrafficCounterData')
>>> cur.as_dict
True
>>> for row in cur:
    print row['ID'] 
Run Code Online (Sandbox Code Playgroud)

但它给出了:

Traceback (most recent call last):
  File "<pyshell#83>", line 2, in <module>
    print row['ID']
TypeError: tuple indices must be integers, not str
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Jan*_*ita 6

您需要添加参数 as_dict=True ,如下所示:

    cursor = conn.cursor(as_dict=True)
Run Code Online (Sandbox Code Playgroud)

如果 row['id'] 是结果集中的字段名称,则您将能够访问它。

根据以下文档:

https://pythonhosted.org/pymssql/pymssql_examples.html#rows-as-dictionaries


Sen*_*ran 1

查看您正在使用的 pymssql 版本。仅从1.0.2 开始,它才返回字典,早期版本似乎返回元组。