【发布时间】:2017-03-08 19:26:29
【问题描述】:
我一直在尝试使用字符串键序列化十进制值,但到目前为止,我只成功地制作了 1 个十进制数字(如“16.1”)。我尝试了 json 和 simplejson 库,子类化编码器等......
这行得通:
jsonContent = json.dumps({"value": Decimal('15.4')})
这不是:
jsonContent = json.dumps({"value": Decimal('15.43')})
我的代码中的下一步是对 jsonContent 变量进行编码,即使我认为没有必要,因为它返回相同的字符串并通过串行总线发送。我不明白为什么用一个十进制数字它可以工作,而不是更多......我也尝试了round()和float,它以相同的结果结束。提前谢谢你。
【问题讨论】:
-
奇怪,neither of those work for me;都给
TypeError: [...] is not JSON serializable。在序列化 15.4 之前你做了什么特别的事情吗? -
实际上我忘了提到我正在将精度从 28 更改为 4,但这与我无关。 simplejson 库不会失败。
-
我无法在 Python 3.5 或 Python 2.7 中重现这个问题——使用 simplejson 总是有效的,所以我不确定是什么问题。
-
还能够使用this answer 中提到的类似问题的子类json 编码器成功使用
json模块。 -
Simplejson 正在工作,只是我的下一个命令,它没有接受足够的输入数据......对不起,谢谢
标签: python json floating-point decimal simplejson