python - 将pyodbc游标结果输出为python字典

标签 python dictionary pyodbc database-cursor pypyodbc

如何将 pyodbc 游标输出(来自 .fetchone.fetchmany.fetchall)序列化为 Python 字典?

我正在使用bottlepy,需要返回dict,以便它可以将它作为JSON返回。

最佳答案

如果您不提前知道列,请使用 Cursor.description建立一个列名列表和zip每行生成一个字典列表。示例假设已建立连接和查询:

>>> cursor = connection.cursor().execute(sql)
>>> columns = [column[0] for column in cursor.description]
>>> print(columns)
['name', 'create_date']
>>> results = []
>>> for row in cursor.fetchall():
...     results.append(dict(zip(columns, row)))
...
>>> print(results)
[{'create_date': datetime.datetime(2003, 4, 8, 9, 13, 36, 390000), 'name': u'master'},   
 {'create_date': datetime.datetime(2013, 1, 30, 12, 31, 40, 340000), 'name': u'tempdb'},
 {'create_date': datetime.datetime(2003, 4, 8, 9, 13, 36, 390000), 'name': u'model'},     
 {'create_date': datetime.datetime(2010, 4, 2, 17, 35, 8, 970000), 'name': u'msdb'}]

关于python - 将pyodbc游标结果输出为python字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16519385/

相关文章:

python - 来自 SQL Server 的 "Invalid precision or scale value"错误,使用 pypyodbc for Decimal( '0.00' )、Decimal( '0.12' )

python - MS SQL 无效的对象名称

python - 从 pyodbc 读取数据到 pandas

python - 如何重置从 ipywidget 命令按钮生成的输出,以便仅显示更新的 DataFrame?

python - 使用 python 替换和删除 csv 中的列

java - 在 log(n) 时间内插入和更新,性能更好

dictionary - 在 golang 中使用私有(private) map 、 slice 的最佳做法是什么?

python - 在 Python 中打印可被素数整除的数字

python - 如何判断一个正则表达式是否匹配另一个正则表达式的子集?

c# - 如何将枚举标志与字典键进行比较?