/
Gleb_Andreevi4
/
Master_class
Обзор
Документация
Войти
/
Gleb_Andreevi4
/
Master_class
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/validation.py
59 строк
2 KB
Glebastis
Модели pydantic и Функции проверки корректности моделей
03 мар 2025, 13:22
03 мар 2025, 13:22
ac37348
Код
Авторство
О чём код?
import json from pydantic import ValidationError from .models import FilmModel, DayModel def validate_and_process_film_json(json_str: str) -> str: try: # Парсим JSON-строку в объект Python data = json.loads(json_str) # Проверяем данные на соответствие модели Pydantic my_model_instance = FilmModel(**data) if my_model_instance.date.weekday() in [1,3,5]: valid_names = ['Аватар', 'Матрица', 'Брат 2'] elif my_model_instance.date.weekday() in [2,4,6]: valid_names = ['Лило и Стич', 'История игрушек', 'Кощей'] if my_model_instance.name in valid_names: return "Билет на фильм успешно забронирован!" else: return f"Данный фильм не идет {my_model_instance.date}" except json.JSONDecodeError: return "Ошибка: некорректный формат JSON." except ValidationError as e: # Проверяем, если ошибка связана с именем for error in e.errors(): if 'name' in error['loc']: return error['msg'] return f"Ошибка валидации: {e}" def validate_and_process_date_json(json_str: str) -> str: try: # Парсим JSON-строку в объект Python data = json.loads(json_str) # Проверяем данные на соответствие модели Pydantic my_model_instance = DayModel(**data) if my_model_instance.date.weekday() in [1,3,5]: valid_names = ['Аватар', 'Матрица', 'Брат 2'] elif my_model_instance.date.weekday() in [2,4,6]: valid_names = ['Лило и Стич', 'История игрушек', 'Кощей'] films = ', '.join(valid_names) return str(my_model_instance.date) + f' в нешем кинотеатре идут фильмы: {films}' except json.JSONDecodeError: return "Ошибка: некорректный формат JSON." except ValidationError as e: # Проверяем, если ошибка связана с именем for error in e.errors(): if 'name' in error['loc']: return error['msg'] return f"Ошибка валидации: {e}"