Обычно это выглядит так:
Код: Выделить всё
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
Мобильная версия