当前位置: 首页 > 面试题库 >

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

薛保臣
2023-03-14
问题内容

如何序列pyodbc输出(从光标.fetchone.fetchmany.fetchall)Python字典?

我使用的是bottlepy,需要返回dict,以便它可以将其作为JSON返回。


问题答案:

如果您不提前知道列,请使用Cursor.description生成列名列表,并在每行压缩后生成字典列表。该示例假定已建立连接和查询:

>>> 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'}]


 类似资料:
  • 问题内容: 我想从命令行的查询输出到MySQL获得无标题的CSV数据。我在与MySQL服务器不同的计算机上运行此查询,因此所有带有“ INTO OUTFILE”的Google回答都不好。 所以我跑了。输出的内容看起来像这样: 好吧,那不好。但是,嘿,看!如果我仅将其通过管道传递到 任何内容 ,它将变成制表符分隔的列表: 那样更好-至少可以通过程序分析。但是我不想要TSV,我想要CSV,也不需要那个

  • 问题内容: 我是python的初学者。我想将sql结果转换为列表。这是我的代码: 我的表中有6列,但是此代码不会创建6元素列表。我在哪里做错了? 问题答案: 如果你有一个迭代在Python,做一个列表,可以简单地调用了内置: 请注意,可迭代项通常与列表一样有用,并且可能会变得更懒惰,因此效率更高。 您的原始代码失败了,因为它没有太多意义。您遍历行并枚举它们,这样就得到等等…-这意味着您正在建立第n

  • 本文向大家介绍sqlalchemy 将查询结果转换为字典,包括了sqlalchemy 将查询结果转换为字典的使用技巧和注意事项,需要的朋友参考一下 示例 首先为示例进行设置: 如果您要分别查询列,则该行是KeyedTuple具有_asdict方法的。方法名称以单个下划线开头,以匹配namedtupleAPI(它不是私有的!)。 使用ORM检索对象时,默认情况下不可用。应该使用SQLAlchemy检

  • 问题内容: 由于某些奇怪的原因,我无法从Python测试应用程序中的callproc调用中获得结果。MqSQL 5.2.47中的存储过程如下所示: 现在,在Python 3.3中使用PyCharm时,在调用此存储过程时似乎什么也找不到。这段代码为我提供了预期的结果: 但是这段代码带有cursor.fetchall()或cursor.fetchone()… …返回“ mysql.connector.

  • 小白菜疑问,能不能详细地跟我说一下两种写法的区别? 题目:使用函数求素数和: 定义prime(p), 其中函数prime当用户传入参数p为素数时返回True,否则返回False 定义PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n 假设输入m=1,n=10 疑问:下面是两种不同的写法,第一个是我写的,第二个是正确答案TT,我不太

  • 我正在尝试实现REST API,其中一部分是将数据格式化为JSON。我能够从mysql数据库中检索数据,但是我收到的对象并不是我所期望的。这是我的代码 结果: 如何实现返回如下所示的json格式: