Python Glossary English

Python 3.5+Исключенияисключение

json.JSONDecodeError

модульные исключения

Некорректный JSON при разборе: json.loads('{bad'). Несёт позицию ошибки (pos/lineno/colno).

Синтаксис

raise json.JSONDecodeError

Чаще всего разбираемая строка вообще не JSON: пустой ответ сервера, HTML-страница ошибки или питоновский repr словаря с одинарными кавычками — JSON требует двойные и запрещает висячую запятую. В обработчике полезны атрибуты pos, lineno, colno и doc: они показывают точное место обрыва, а не просто факт неудачи. Это подкласс ValueError, так что except ValueError ловит его заодно; ловить нужно только этот класс, если хотите отличить битый JSON от прочих ошибок.

Примеры

import json
try:
    json.loads('{bad')
except json.JSONDecodeError as e:
    print(type(e).__name__)   # → JSONDecodeError

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности