Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 12, 2020 19:19:29

GaDaub
Зарегистрирован: 2020-10-03
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

программа не находит файл

import json

filename = ‘lovely_number.json’
try:
with open(filename) as f_obj:
lovely_number = json.load(f_obj)
except FileNotFoundError:
username = input(“What is your lovely number? ”)
with open(filename, ‘w’) as f_obj:
json.dump(lovely_number, f_obj)
print(“We'll remember you lovely_number when you come back!”)

Помогите, пожалуйста, разобраться с проблемой. lovely_number.py находится в той же дирректории, что и сама программа, но выводит ошибку:


Traceback (most recent call last):
File “lovely_number.py”, line 8, in <module>
lovely_number = json.load(f_obj)
File “C:\Users\DGV\AppData\Local\Programs\Python\Python38-32\lib\json\__init__.py”, line 293, in load
return loads(fp.read(),
File “C:\Users\DGV\AppData\Local\Programs\Python\Python38-32\lib\json\__init__.py”, line 357, in loads
return _default_decoder.decode(s)
File “C:\Users\DGV\AppData\Local\Programs\Python\Python38-32\lib\json\decoder.py”, line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File “C:\Users\DGV\AppData\Local\Programs\Python\Python38-32\lib\json\decoder.py”, line 355, in raw_decode
raise JSONDecodeError(“Expecting value”, s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Офлайн

#2 Окт. 12, 2020 19:34:37

GaDaub
Зарегистрирован: 2020-10-03
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

программа не находит файл

import json

filename = ‘number.json’
try:
with open(filename) as f_obj:
number = json.load(f_obj)
except FileNotFoundError:
number = input(“What is your lovely number? ”)
with open(filename, ‘w’) as f_obj:
json.dump(number, f_obj)
print(“We'll remember you lovely number when you come back!” )


я изменила название переменной и имя файла json и всё заработало.. Такие ситуации - это норма для Python? Или json не сохраняет файлы с нижним подчёркиванием?

Офлайн

#3 Окт. 12, 2020 21:05:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9885
Репутация: +  853  -
Профиль   Отправить e-mail  

программа не находит файл

GaDaub
lovely_number.py находится в той же дирректории, что и сама программа
Программа прямо в нём и находится.

Сообщение об ошибке можно перевести на русский. JSONDecodeError - ошибка раскодирования JSON, что уже значит, что файл обнаружен. Внутри файла что-то не то.

GaDaub
я изменила название переменной и имя файла json и всё заработало
Вот. А теперь опять измени имя файла и вставь туда подчёркивание.

GaDaub
Или json не сохраняет файлы с нижним подчёркиванием?
Так ты узнаешь, сохраняет ли он файлы с подчёркиванием.

Все эти проблемы из-за мешанины. Ты пытаешься делать всё одновременно, а надо делать всё постепенно шаг за шагом и каждый шаг проверять на правильность. Когда шаг выполнен правильно (получены явные доказательства этого), можно переходить к следующему шагу. Так ты пишешь любую программу. А делание всего одновременно ради кажущегося увеличения скорости разработки приведёт тебя только в результате к двукратной или даже трёхкратной затрате времени на разработку. Разработка программы похожа на поедание торта. Ты отрезаешь кусочек и съедаешь его, и только после этого отрезаешь следующий кусочек и съедаешь этот следующий. Если же ты ради предполагаемой кажущейся скорости начинаешь есть весь торт сразу, то ты его съешь, конечно, в итоге, но выглядеть это будет совсем не так, как в нормальном случае. Проблемы будут возникать на каждом этапе этого процесса. При этом в первом случае проблем вообще не будет.

Вносишь одно изменение - смотришь на изменения в поведении программы.
Если всё работает, вносишь второе изменение - смотришь на изменения в поведении программы.
Если всё работает, вносишь третье изменение - смотришь на изменения в поведении программы.
И так далее, пока разработка программы не дойдёт до последнего шага.



Отредактировано py.user.next (Окт. 12, 2020 21:18:56)

Офлайн

#4 Окт. 12, 2020 21:41:34

GaDaub
Зарегистрирован: 2020-10-03
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

программа не находит файл

Спасибо большое за такие красочные наставления) Буду стараться)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version