- Создан модуль storage.py - Функция save_tasks_to_file() - сохранение в JSON - Функция load_tasks_from_file() - загрузка из JSON - Обработка ошибок: FileNotFoundError, JSONDecodeError
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""
|
|
Модуль для сохранения и загрузки данных
|
|
Работа с файлами JSON
|
|
"""
|
|
|
|
import json
|
|
from task import Task
|
|
|
|
|
|
def save_tasks_to_file(tasks, filename="tasks.json"):
|
|
"""Сохранить список задач в файл JSON"""
|
|
data = []
|
|
for task in tasks:
|
|
data.append({
|
|
"title": task.title,
|
|
"description": task.description,
|
|
"completed": task.completed
|
|
})
|
|
|
|
with open(filename, "w", encoding="utf-8") as f:
|
|
json.dump(data, f, ensure_ascii=False, indent=2)
|
|
|
|
return True
|
|
|
|
|
|
def load_tasks_from_file(filename="tasks.json"):
|
|
"""Загрузить список задач из файла JSON"""
|
|
try:
|
|
with open(filename, "r", encoding="utf-8") as f:
|
|
data = json.load(f)
|
|
|
|
tasks = []
|
|
for item in data:
|
|
task = Task(item["title"], item.get("description", ""))
|
|
if item.get("completed", False):
|
|
task.mark_complete()
|
|
tasks.append(task)
|
|
|
|
return tasks
|
|
except FileNotFoundError:
|
|
return []
|
|
except json.JSONDecodeError:
|
|
print("Ошибка чтения файла. Данные могут быть повреждены.")
|
|
return []
|