避免在游标.获取

2024-04-27 03:05:43 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python脚本中,cursor.fetchall命令返回一个元组列表,其中一些元素被标记为Decimal('0.50'),而不仅仅是0.50。在

myList= [(1, 'string1', None, None, 'string2', 0, 'string3'),
(1,   'string1',   Decimal('0.50'),   Decimal('2.5'),   'string2',   3,   'string3')]

我喜欢后一种形式(即0.50)的原因是我试图使用print(json.dumps(result))发送列表,它当前返回TypeError: Decimal('0.50') is not JSON serializable。在

有没有直接的方法去除这种“类型”信息?我在这个问题上一直没有成功,我发现前面的相关问题只涉及所有元素都是相同类型的情况(例如here)。谢谢你的建议!在


Tags: 标记命令脚本none元素类型列表cursor
1条回答
网友
1楼 · 发布于 2024-04-27 03:05:43

这是我克服这个问题的方法。

首先,我将查询结果转换为pandas数据帧:

df = pd.DataFrame(query_data)

然后,我只需将麻烦的列转换为字符串:

^{pr2}$

最后,我将数据帧转换为csv字符串:

df_csv = df.to_csv(sep=',', index = False, header = False) 

这可以在print(json.dumps(result))中正确使用。

相当具体的解决办法,但我想我还是会贴出来,至少提供一个问题的答案。

相关问题 更多 >