← маршрут 1–48 · личный кабинет

Занятие 41. JSON: сохранение

45 минут учебной работыиндивидуальнотекстовая RPG

Перед началом

Что открыть: Открой рабочую версию проекта после занятия 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 об ошибке. Сначала прочитай его последнюю строку и найди номер строки своего файла. Повтори только тот маленький шаг, на котором возникла ошибка; после исправления снова запусти тот же проверочный случай. Если используешь ИИ, сохрани собственную попытку и попроси одну подсказку, а не готовое решение.