Создание объекта 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

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