6

我说的是 JSON 转换,例如:

>>> a = {'asas': 1/7.0}
>>> b = json.dumps(a)
>>> c = json.loads(b)
>>> c
{u'asas': 0.14285714285714285}
>>> c['asas'] == 1.0/7
True

JSON编码是否保证不会四舍五入?

在我的如何将浮点数存储为文本而不丢失精度?,马克狄金森说那repr不会导致精确度的损失。是否json.dumps使用repr?

4

1 回答 1

6

文档中没有提到repr任何地方json,但它是浮点到字符串强制的当前实现:

FLOAT_REPR = repr

Lib/json/encoder.py,第 31 行

JSONEncoder如果你想要一个严格的保证,你可以建立自己的。

于 2012-06-20T10:30:09.153 回答