Найти - Пользователи
Полная версия: изменение дробной части float-чисел при дампе json
Начало » Python для новичков » изменение дробной части float-чисел при дампе json
1
axe
json работает так:
>>> json.dumps(1.1)
'1.1000000000000001'

вопрос - как исправить? мне надо, чтобы json.dumps срабатывал как str(1.1) в отношении float-чисел
s0rg
Где?
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24)

In [1]: import json
In [2]: json.dumps(1.1)
Out[2]: '1.1'

In [3]: import simplejson
In [4]: simplejson.dumps(1.1)
Out[4]: '1.1'
axe
python 2.6 модуль json, операционка fedora
я знаю, что воспроизводится не всегда и не везде. видел такие “преобразования” на другой системе, но там это было не важно.
s0rg
Сейчас нет под рукой fedor'ы - вот тут, похоже проблему решили:
http://stackoverflow.com/questions/1447287/format-floats-with-standard-json-module
axe
s0rg, спасибо большое! Вы очень помогли!
Я сам гуглил, но не нашёл…

процитирую решение:
from json import encoder
encoder.FLOAT_REPR = lambda o: format(o, '.2f')
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB