【发布时间】:2012-07-25 04:48:20
【问题描述】:
我想知道是否有任何方法可以在 python 中用 json 格式化某个对象的编码结果字符串。例如,假设我有以下字典:
{'a': 12.73874, 'b': 1.74872, 'c': 8.27495}
而json编码的结果是:
{
"c": 8.27495,
"b": 1.74872,
"a": 12.73874
}
而我想要的结果是:
{
"a": 12.74,
"c": 8.28,
"b": 1.75
}
注意元素的顺序和每个数字的小数位。有没有办法做到这一点?
提前致谢!
【问题讨论】:
-
你使用的是什么 JSON ecnode? Python 附带的那个,或者
simplejson,还是另一个? -
我认为 JSON 的重点是能够准确地还原您提供给它的对象。在这种情况下,如果在小数点后截断,则无法再从 JSON 中恢复字典(尽管排序是另一回事)
-
我正在使用 python 附带的 json。我认为这里的问题不在于 json 本身,而在于我使用 json 的目的。我使用它不是为了能够准确地恢复我编码的对象(恢复对象在我的应用程序的上下文中甚至不重要),而是作为一种以人类可读的方式轻松记录它们的方式。这就是为什么小数位和顺序很重要。但我想如果我自己打印文件而不是使用 json 会更简单:)
-
注意:
"%.2f" % v和round(v, 2)都为v = 8.27495生成8.27,而不是8.28。