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