您的位置:首页 > 编程语言 > Python开发

python中将浮点数变成json时,控制小数位数

2017-02-16 11:55 651 查看
>>>import json

>>>d = { 'a': 0.333333333, 'b': 0.445444444, 'c': 0.293 }

>>>json.dumps(d)

得到

'{"a": 0.333333333, "c": 0.293, "b": 0.445444444}'

而我们期望得到

'{"a": 0.33, "c": 0.29, "b": 0.45}'

以下是解决办法
http://stackoverflow.com/questions/1447287/format-floats-with-standard-json-module
import json

def pretty_floats(obj):
if isinstance(obj, float):
return round(obj, 3)
elif isinstance(obj, dict):
return dict((k, pretty_floats(v)) for k, v in obj.items())
elif isinstance(obj, (list, tuple)):
return map(pretty_floats, obj)
return obj

d = { 'a': 0.333333333, 'b': 0.445444444, 'c': 0.293 }

print json.dumps(pretty_floats(d))


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: