Я пытаюсь сериализовать десятичное значение с помощью строкового ключа, но до сих пор мне удалось сделать успешную 1 десятичную цифру (например, «16 .1»). Я попробовал оба JSon и simplejson библиотеки, подклассов кодировщик, и т.д. ....Сериализация десятичной дроби с помощью simplejson
Это работает:
jsonContent = json.dumps({"value": Decimal('15.4')})
Это не:
jsonContent = json.dumps({"value": Decimal('15.43')})
Следующие шаги в моем коде является закодируйте переменную jsonContent, даже если я думаю, что это необязательно, поскольку она возвращает ту же строку и отправляет ее через последовательную шину. Я не могу понять, почему с одной десятичной цифрой это работает, а не с большим количеством ... Я также пробовал с round() и float, который заканчивается тем же результатом. Благодарю вас заранее.
Странно, [_neither_ тех работ для меня] (http://ideone.com/aoDFdl); оба дают 'TypeError: [...] не JSON serializable'. Вы делали что-то особенное перед сериализацией 15.4? – Kevin
На самом деле я забыл упомянуть, что я менял точность с 28 до 4, но это не относится ко мне. Это не терпит неудачу с помощью библиотеки simplejson. – Dim17300
Я не смог воспроизвести эту проблему в Python 3.5 или Python 2.7 - использование simplejson всегда работает, поэтому я не уверен, в чем проблема. – sytech