Ошибка при загрузке файла json
При попытке загрузить существующий файл через data - json.load(filename)
выдает ошибки:
Traceback (most recent call last):
File "D:\PythonProject1\TG_channel_tabel.py", line 106, in <module>
manager.load_from_file("data/allReport.json")
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "D:\PythonProject1\TG_channel_tabel.py", line 90, in load_from_file
data = json.loads(file.read())
File "C:\Users\vanon\AppData\Local\Programs\Python\Python313\Lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
~~~~~~~~~~~~~~~~~~~~~~~^^^
File "C:\Users\vanon\AppData\Local\Programs\Python\Python313\Lib\json\decoder.py", line 345, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\vanon\AppData\Local\Programs\Python\Python313\Lib\json\decoder.py", line 363, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Хотя, когда файла нет, все проходит хорошо. Формат сохранения правильный, без ошибок.
В чем может быть проблема?
Ответы (1 шт):
Автор решения: Vitalizzare
→ Ссылка
Рискну предположить, что вы пытаетесь прочесть пустой файл. Пример, как это происходит:
import json
try:
d = json.loads('')
except Exception as e:
print(repr(e))
# Output:
# JSONDecodeError('Expecting value: line 1 column 1 (char 0)')
Если файл не пустой, тогда до вызова метода file.read()
в файле "TG_channel_tabel.py"
уже было произведено чтение всего содержимого file
, после чего последующие попытки чтения будут возвращать пустую строку, попытка парсить которую возвращает указанную выше ошибку.