Сериализация сложных объектов Python в JSON с помощью пользовательских кодировщиков
Модуль json обрабатывает только фиксированный набор типов Python. Для сериализации комплексных чисел, дат, путей или классов пользователей необходимо предоставить функцию default или подклассить JSONEncoder, затем сопоставить вывод с object_hook на стороне декодирования.
json / serialization / JSONEncoder / default / object_hook / python-standard-library / datetime / complex