Как работает модуль `json` при сериализации объектов?

json.dumps преобразует поддерживаемые Python-значения в JSON-строку, а json.dump записывает JSON в файловый объект. Произвольный экземпляр класса автоматически не сериализуется без специального преобразования.

Короткий ответ

Что ответить на собеседовании

json.dumps преобразует поддерживаемые Python-значения в JSON-строку, а json.dump записывает JSON в файловый объект. Произвольный экземпляр класса автоматически не сериализуется без специального преобразования.

Подробный разбор

Ответ с пояснениями

json.dumps преобразует поддерживаемые Python-значения в JSON-строку, а json.dump записывает JSON в файловый объект. Произвольный экземпляр класса автоматически не сериализуется без специального преобразования.

Списки и кортежи становятся массивами, словари — объектами JSON, None — null, логические значения — true/false. Ключи JSON являются строками, поэтому round-trip не всегда сохраняет исходные типы ключей. Для datetime, Decimal или пользовательского класса задают default либо encoder с явным контрактом. Циклические ссылки и неподдерживаемые объекты требуют обработки. Для строгого JSON отключайте нестандартные NaN/Infinity через allow_nan=False; формат не хранит поведение класса и ссылки между объектами.

Источник: docs.python.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее