2012-06-20 28 views
6

Tôi đang nói về một sự chuyển đổi JSON như:Json.dumps có được đảm bảo không mất độ chính xác của dấu chấm động không?

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

Sản phẩm mã hóa JSON bảo đảm không roundoff số?

Trong số How to store a floating point number as text without losing precision? của tôi, Mark Dickinson nói rằng repr không gây mất chính xác. json.dumps có sử dụng số repr không?

Trả lời

6

Không có đề cập đến repr bất cứ nơi nào trong json tài liệu, nhưng nó là việc thực hiện hiện tại của float-to-string ép buộc:

FLOAT_REPR = repr 

(Lib/json/encoder.py, line 31)

Bạn có thể xây dựng riêng của bạn JSONEncoder nếu bạn muốn có một đảm bảo nghiêm ngặt.

Các vấn đề liên quan