码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-02-16 14:25:41      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:dump   format   question   解决办法   mod   stack   list   tty   dict   

>>>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))

 

  

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

标签:dump   format   question   解决办法   mod   stack   list   tty   dict   

原文地址:http://www.cnblogs.com/wythend/p/6405036.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!