JSON loads で文字列JSON を読込む時の、浮動小数点の少数桁は以下の動きをする。
import json from decimal import Decimal jstr = '{"width": 2.01285481238632125743}' dc = json.loads(jstr) print(dc['width']) dc = json.loads(jstr, parse_float=Decimal) print(dc['width']) dc = json.loads(jstr, parse_float=lambda x:round(float(x), 6)) print(dc['width'])
結果
2.0128548123863212 2.01285481238632125743 2.012855
parse_float=None の時、decimal.Decimal と同じではなく、
float(value) と同じである。