我想在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']
但它给出了:
Traceback (most recent call last):
File "<pyshell#83>", line 2, in <module>
print row['ID']
TypeError: tuple indices must be integers, not str
有人可以帮忙吗?
答案 0 :(得分:1)
查看您正在使用的pymssql版本。只有since 1.0.2它会返回一个字典,早期的版本似乎会返回元组。
答案 1 :(得分:0)
您需要像这样添加参数as_dict = True:
cursor = conn.cursor(as_dict=True)
如果行['id']是结果集中的字段名称,则可以访问它。
根据以下文档:
http://pymssql.org/en/stable/pymssql_examples.html#rows-as-dictionaries
答案 2 :(得分:0)
可以在创建连接本身时设置 as_dict=True。
pymssql.connect(server='.', user='', password='', database='', as_dict=True,)
https://pythonhosted.org/pymssql/ref/pymssql.html?highlight=connect#pymssql.connect