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

Занятие 42. JSON: загрузка

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

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

Что открыть: Открой рабочую версию проекта после занятия 41. Демонстрационный lesson-42.py используй как отдельный маленький пример.

Исходные данные: Начни с значений из минимального примера. Творческие изменения выполняй только после базовой проверки.

Что нужно понять

Занятие 42 посвящено теме «JSON: загрузка». Здесь этот навык применяется не как отдельное упражнение, а как часть общей текстовой RPG. json.load возвращает обычный словарь. После чтения его поля можно использовать для создания нового Hero и тем самым восстановить объект. Отсутствующий файл обрабатывается отдельно через FileNotFoundError.

Минимальный пример

import json
class Hero:
    def __init__(self,name,hp,coins,inventory):
        self.name=name; self.hp=hp; self.coins=coins; self.inventory=inventory
try:
    with open("save.json",encoding="utf-8") as f: state=json.load(f)
except FileNotFoundError:
    state={"name":"Новый герой","hp":10,"coins":0,"inventory":[]}
hero=Hero(state["name"],state["hp"],state["coins"],state["inventory"])
print(hero.name,hero.hp,hero.coins,hero.inventory)

Скачать демонстрационный .py-файл

Практика

Если save.json существует, загрузи state и создай Hero из state['name'], state['hp'], state['coins'], state['inventory']. Если файла нет, создай точное стартовое состояние Новый герой/10/0/пустой inventory.

Связь с проектом: После базового упражнения перенеси изученный приём в рабочую версию проекта и сохрани версию после занятия 42.

Критерий проверки

После файла занятия 41 восстанавливаются Лея/8/4/['карта','ключ']; без файла создаётся Новый герой/10/0/[].

Как проверить: Сценарий A — файл есть. Сценарий B — файл удалён/отсутствует.

Что сдать

Сдай рабочую версию проекта после занятия 42 и короткий протокол проверки: входные данные → ожидалось → получилось.

Если нужна поддержка: Если задача не запускается целиком, выполни один шаг отдельно и объясни, что должно измениться до следующего шага.

Типичное затруднение

Не выполняй содержимое файла как код и не предполагай, что файл всегда существует.

Домашняя часть

Добавь пункт «новая игра» или «продолжить» в свой сценарий загрузки.

После базы: Проверь поведение на временно переименованном файле сохранения.

Если появилась ошибка

Traceback — сообщение Python об ошибке. Сначала прочитай его последнюю строку и найди номер строки своего файла. Повтори только тот маленький шаг, на котором возникла ошибка; после исправления снова запусти тот же проверочный случай. Если используешь ИИ, сохрани собственную попытку и попроси одну подсказку, а не готовое решение.