Отображение лучшего сообщения об ошибке, чем «Ни один объект JSON не может быть декодирован».Python

Программы на Python
Anonymous
Отображение лучшего сообщения об ошибке, чем «Ни один объект JSON не может быть декодирован».

Сообщение Anonymous »

Код Python для загрузки данных из какого-то длинного сложного файла JSON:

Код: Выделить всё

with open(filename, "r") as f:
data = json.loads(f.read())
(примечание: лучшая версия кода должна быть:

Код: Выделить всё

with open(filename, "r") as f:
data = json.load(f)
но оба ведут себя одинаково)

Для многих типов ошибок JSON (отсутствующие разделители, неправильные обратные косые черты в строках и т. д.) выводится приятное полезное сообщение, содержащее номер строки и столбца, в которых была обнаружена ошибка JSON.

Однако для других типов ошибок JSON (включая классическую «использование запятой в последнем элементе списка», а также другие вещи, такие как использование заглавных букв true/false), вывод Python просто:

Код: Выделить всё

Traceback (most recent call last):
File "myfile.py", line 8, in myfunction
config = json.loads(f.read())
File "c:\python27\lib\json\__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "c:\python27\lib\json\decoder.py", line 360, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "c:\python27\lib\json\decoder.py", line 378, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
Для этого типа ValueError, как заставить Python сообщить вам, где находится ошибка в файле JSON?

Подробнее здесь: https://stackoverflow.com/questions/148 ... be-decoded

Вернуться в «Python»