Задать вопрос
@NewUser9901

Как исправить ошибку при открытие txt с помощью json?

Всем привет! Недавно столкнулся с такой ошибку, что не могу открывать txt файлы через json. Подскажите, пожалуйста, что не так.

import json

test = []
test1 = []
test2 = []
test3 = []

with open('name.txt', 'r') as f, open('name1.txt', 'r') as f1, open('name2.txt', 'r') as f2, open('name3.txt', 'r') as f3:
    test = json.loads(f.read())
    test1 = json.loads(f1.read())
    test2 = json.loads(f2.read())
    test3 = json.loads(f3.read())


Erorr: line 10, in
test1 = json.loads(f1.read())
File "C:\python36\lib\json\__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "C:\python36\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\python36\lib\json\decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 2 (char 1)
  • Вопрос задан
  • 115 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 2
NeiroNx
@NeiroNx
Программист
JSON ваш кривой
Ответ написан
Комментировать
@dmshar
1. Внимательно прочитать документацию. Обратить внимание на две ключевые фразы:
- json.load - ....Deserialize fp (a .read()-supporting text file or binary file containing a JSON document) to a Python object
- json.loads- ... Deserialize s (a str, bytes or bytearray instance containing a JSON document) to a Python object
2. Соответственно, для чтения из файлов надо использовать первую из приведенных функций, примерно в таком виде:
with open("data_file.json", "r") as read_file:
    data = json.load(read_file)


И конечно, данные записаные в файл должны туда ранее быть сериализованы и записаны корректно.
Если же - например - при выводе файла что-бы было сделано не так, то и прочитать вы ничего не сможете. Поэтому - внимательно проверяйте всю цепочку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы