用python格式化Json字符串

2024-06-26 05:04:19 发布

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

我想知道是否有任何方法可以格式化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
}

注意元素的顺序和每个数字的小数位。有办法吗?

提前谢谢!


Tags: 对象方法字符串json元素编码字典顺序
3条回答

对于Python和JSON,dict中的顺序没有意义。如果你介意的话,用列表代替口述。

如果您只想对JSON输出进行排序(也就是说,更喜欢{1:0, 2:0}而不是{2:0, 1:0},即使它们是等价的),那么可以使用^{}来记住插入项的顺序。

如果使用的是2.6+,则可以执行以下操作:

print json.dumps(jsonStr, sort_keys=True, indent=2, separators=(',', ': '))

http://docs.python.org/2/library/json.html

您正在尝试将JSON用于它不打算用于的某些方面,因此它不能很好地工作也就不足为奇了。您可以考虑使用source code of Python's ^{} module作为您自己的输出代码的起点,尽管从头开始可能是最简单的——编写这样的输出函数并没有那么复杂。

相关问题 更多 >