← маршрут 1–48 · личный кабинет
Занятие 41. JSON: сохранение
Перед началом
Что открыть: Открой рабочую версию проекта после занятия 40. Демонстрационный lesson-41.py используй как отдельный маленький пример.
Исходные данные: Hero: Лея, hp=8, coins=4, inventory=['карта','ключ'].
Что нужно понять
Занятие 41 посвящено теме «JSON: сохранение». Здесь этот навык применяется не как отдельное упражнение, а как часть общей текстовой RPG. JSON хранит обычные структуры Python: строки, числа, списки и словари. Экземпляр Hero сначала превращаем в словарь state с нужными полями; затем json.dump записывает этот словарь.
Минимальный пример
import json
class Hero:
def __init__(self,name,hp,coins,inventory):
self.name=name; self.hp=hp; self.coins=coins; self.inventory=inventory
hero=Hero("Лея",8,4,["карта","ключ"])
state={"name":hero.name,"hp":hero.hp,"coins":hero.coins,"inventory":hero.inventory}
with open("save.json","w",encoding="utf-8") as f: json.dump(state,f,ensure_ascii=False,indent=2)
print(state)Скачать демонстрационный .py-файл
Практика
Создай Hero с name, hp, coins и inventory, собери state={'name':hero.name,'hp':hero.hp,'coins':hero.coins,'inventory':hero.inventory} и сохрани state в save.json.
Связь с проектом: После базового упражнения перенеси изученный приём в рабочую версию проекта и сохрани версию после занятия 41.
Критерий проверки
В JSON есть name:str, hp:int, coins:int, inventory:list; файл читается и содержит фактические данные объекта.
Как проверить: Открой JSON и сверь четыре поля с объектом перед сохранением.
Что сдать
Сдай рабочую версию проекта после занятия 41 и короткий протокол проверки: входные данные → ожидалось → получилось.
Если нужна поддержка: Если задача не запускается целиком, выполни один шаг отдельно и объясни, что должно измениться до следующего шага.
Типичное затруднение
Не пытайся напрямую записать экземпляр класса без преобразования в простые структуры данных.
Домашняя часть
Добавь номер версии формата и ещё одно поле состояния.
После базы: Открой save.json вручную и сопоставь каждое поле с переменной программы.
Если появилась ошибка
Traceback — сообщение Python об ошибке. Сначала прочитай его последнюю строку и найди номер строки своего файла. Повтори только тот маленький шаг, на котором возникла ошибка; после исправления снова запусти тот же проверочный случай. Если используешь ИИ, сохрани собственную попытку и попроси одну подсказку, а не готовое решение.