2012-06-20 13 views
6

Sto parlando di una conversione JSON come:json.dumps è garantito per non perdere la precisione in virgola mobile?

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

è la codifica JSON garantito di non roundoff il numero?

Nel mio How to store a floating point number as text without losing precision?, Mark Dickinson afferma che repr non causa una perdita di precisione. json.dumps utilizza repr?

risposta

6

Non v'è alcuna menzione di repr ovunque nelle json documenti, ma è l'implementazione corrente di float a stringa coercizione:

FLOAT_REPR = repr 

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

È possibile costruire il proprio JSONEncoder se vuoi una garanzia rigorosa

Problemi correlati