Создание объекта JSON, сериализуемого с помощью обычного кодировщикаPython

Программы на Python
Ответить
Anonymous
 Создание объекта JSON, сериализуемого с помощью обычного кодировщика

Сообщение Anonymous »

Обычным способом JSON-сериализации пользовательских несериализуемых объектов является создание подкласса json.JSONEncoder и последующая передача пользовательского кодировщика в json.dumps().
Обычно это выглядит так:

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

class CustomEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Foo):
return obj.to_json()

return json.JSONEncoder.default(self, obj)

print(json.dumps(obj, cls=CustomEncoder))
Я пытаюсь сделать что-то сериализуемое с помощью кодировщика по умолчанию. Я осмотрелся, но ничего не нашел.
Я думаю, что должно быть какое-то поле, в котором кодировщик просматривает, чтобы определить кодировку json. Что-то похожее на __str__. Возможно, поле __json__.
Есть ли что-то подобное в Python?
Я хочу сделать один класс создаваемого мной модуля так, чтобы его можно было сериализовать в формате JSON для всех, кто использует пакет, и чтобы им не приходилось беспокоиться о реализации своих собственных [тривиальных] пользовательских кодировщиков.

Подробнее здесь: https://stackoverflow.com/questions/184 ... ar-encoder
Ответить

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

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

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

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

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