python中精确输出JSON浮点数的方法
2016-06-29 11:12
281 查看
有时需要在JSON中使用浮点数,比如价格、坐标等信息。但python中的浮点数相当不准确, 例如下面的代码:
复制代码代码如下:
#!/usr/bin/env python
import json as json
data = [ 0.333, 0.999, 0.1 ]
print json.dumps(data)
复制代码代码如下:
$ python floatjson.py
[0.33300000000000002, 0.999, 0.10000000000000001]
复制代码代码如下:
#!/usr/bin/env python
import json
json.encoder.FLOAT_REPR = lambda x: format(x, '.3f')
data = [ 0.333, 0.999, 0.1 ]
print json.dumps(data)
复制代码代码如下:
$ python floatjson.py
[0.333, 0.999, 0.100]
复制代码代码如下:
#!/usr/bin/env python
import json as json
data = [ 0.333, 0.999, 0.1 ]
print json.dumps(data)
输出结果如下:
复制代码代码如下:$ python floatjson.py
[0.33300000000000002, 0.999, 0.10000000000000001]
能不能指定浮点数的输出格式,比如精确到小数点后两位呢?有个简单的方法,虽然比较dirty:
复制代码代码如下:#!/usr/bin/env python
import json
json.encoder.FLOAT_REPR = lambda x: format(x, '.3f')
data = [ 0.333, 0.999, 0.1 ]
print json.dumps(data)
这样输出结果为:
复制代码代码如下:$ python floatjson.py
[0.333, 0.999, 0.100]
相关文章推荐
- Python学习笔记(数字)
- python常用模块介绍之一:string模块
- python @property 属性
- python学习
- windows下面安装Python和pip教程
- [转]Aptana Studio 3配置Python开发环境图文教程
- Python 字典中的中文输出问题
- python(logging )日志模块
- 很全的 Python 面试题
- Python连接数据库查询
- python数据挖掘领域工具包
- python大规模数据处理技巧之三:数据库操作篇
- PYTHONIOENCODING 信用评分 2016.06.28回顾
- 软件工程师关注的播客
- python的一个小游戏之五子棋
- error: could not create '/Library/Python/2.7/site-packages/xlrd': Permission denied
- python中collections 模块里的defaultdict()函数
- 13.5 logging--Python灵活的日志功能
- 使用Python计算物品的流行度和用户所评物品的平均流行度
- Python yield的使用方法