【问题标题】:Serialize a decimal with simplejson使用 simplejson 序列化小数
【发布时间】: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


【解决方案1】:

Simplejson 正在工作,只是我的下一个命令,它没有接受足够的输入数据......对不起,谢谢

【讨论】:

    猜你喜欢
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    相关资源
    最近更新 更多