Кодер Python JSON вместо этого преобразует NaN в нольPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Кодер Python JSON вместо этого преобразует NaN в ноль

Сообщение Anonymous »

Я пишу код для получения произвольного объекта (возможно, вложенного), который можно преобразовать в JSON.
Поведением по умолчанию для встроенного кодировщика JSON Python является преобразование NaN в NaN< /код>, например. json.dumps(np.NaN) возвращает NaN. Как я могу изменить это значение NaN на ноль?
Я попытался создать подкласс JSONEncoder и переопределить метод default() как следует:

Код: Выделить всё

from json import JSONEncoder, dumps
import numpy as np

class NanConverter(JSONEncoder):
def default(self, obj):
try:
_ = iter(obj)
except TypeError:
if isinstance(obj, float) and np.isnan(obj):
return "null"
return JSONEncoder.default(self, obj)

>>> d = {'a': 1, 'b': 2, 'c': 3, 'e': np.nan, 'f': [1, np.nan, 3]}
>>> dumps(d, cls=NanConverter)
'{"a": 1, "c": 3, "b": 2, "e": NaN, "f": [1, NaN, 3]}'
ОЖИДАЕМЫЙ РЕЗУЛЬТАТ: '{"a": 1, "c": 3, "b": 2, "e": null, "f": [1, null, 3 ]}'

Подробнее здесь: https://stackoverflow.com/questions/286 ... ll-instead
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»