JSON в Python: false → False, null → None
@python_quizРазберем этот квиз
Коротко о задаче: в коде JSON-строка парсится модулем json в Python, а затем печатаются значение поля, его тип и проверка на None. Покажем, что получится и почему.
Исходный код

Ожидаемый вывод и объяснение
При выполнении этого кода будет напечатано:

Почему так:
- JSON значение false преобразуется в Python-объект False (логический тип bool).
- JSON значение null преобразуется в Python-объект None.
- При выводе Python булевы значения печатаются как
TrueилиFalse. - Оператор
isсравнивает тождественность;data['name'] is Noneвозвращает True, потому что значение действительно None.
Дополнительное замечание по типам: bool в Python — это подкласс int, но при вызове type() результат — <class 'bool'>, а не <class 'int'>.
Анализ вариантов ответов
- Вариант, где содержится
False <class 'bool'> True— полностью совпадает с выводом кода: булевое значение, его тип и проверка на None. - Вариант с
false <class 'str'> Falseневерен, потому что строка "false" не образуется при парсинге JSON (json.loads превращает false в булево значение, а не в строку). - Вариант с
0 <class 'int'> Trueневерен: false не превращается в 0 при парсинге JSON (хотя bool наследуется от int, но json.loads возвращает bool, и печать дастFalse, а не0). - Вариант с ошибкой при парсинге JSON тоже неверен: значение false в корректном JSON допустимо и json.loads его корректно обрабатывает.
Выводы и рекомендации
- При работе с JSON в Python помните простые соответствия:
true→True,false→False,null→None. - Для проверки на пустое/null-значение используйте
is None, а не сравнение== None. - Если нужно строгие типы или кастинги после парсинга — выполняйте явное приведение, учитывая, что булевы значения — это отдельный тип
<class 'bool'>.