2012-06-20 3 views
6

Я говорю о преобразовании JSON как:Является ли json.dumps гарантией не потерять точность с плавающей запятой?

>>> 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 кодировку гарантированно не округление числа?

В моем How to store a floating point number as text without losing precision?, Марк Дикинсон говорит, что repr не вызывает потерю точности. Использует ли json.dumpsrepr?

ответ

6

Там нет никакого упоминания о repr нигде в json документации, но текущая реализация поплавка в строку принуждения:

FLOAT_REPR = repr 

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

Вы можете создать свой собственный JSONEncoder если вам нужна строгая гарантия.

Смежные вопросы