РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
176 of 307 menu

Метод model_validate

Метод model_validate применяется к классу модели, унаследованному от BaseModel. Первым параметром передаётся словарь или объект для проверки. Метод возвращает новый экземпляр модели с проверенными и преобразованными данными. Если данные не соответствуют схеме, возбуждается исключение ValidationError.

Метод удобен, когда нужно создать модель из уже готового словаря, например, полученного из JSON или из базы данных. В отличие от конструктора модели, model_validate выполняет полную проверку типов и ограничений полей.

Синтаксис

Model.model_validate(obj)

Пример

Давайте создадим модель User и проверим словарь через model_validate:

from pydantic import BaseModel class User(BaseModel): name: str age: int data = {'name': 'abcde', 'age': 25} res = User.model_validate(data) print(res)

Результат выполнения кода:

name='abcde' age=25

Пример

Давайте передадим в model_validate данные с неверным типом и получим ошибку валидации:

from pydantic import BaseModel, ValidationError class User(BaseModel): name: str age: int data = {'name': 'abcde', 'age': 'not a number'} try: res = User.model_validate(data) except ValidationError as e: print(e)

Результат выполнения кода:

1 validation error for User age Input should be a valid integer, unable to parse string as an integer [type=int_parsing, input_value='not a number', input_type=str]

Пример

Давайте используем model_validate внутри обработчика FastAPI для проверки тела запроса:

from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class User(BaseModel): name: str age: int @app.post('/user') def create_user(data: dict): user = User.model_validate(data) return {'name': user.name, 'age': user.age}

Результат выполнения кода для тела {"name": "abcde", "age": 25}:

{"name": "abcde", "age": 25}

Смотрите также

  • класс BaseModel,
    от которого наследуются все модели Pydantic
  • метод model_validate_json,
    который проверяет JSON-строку и создаёт модель
  • метод model_dump,
    который преобразует модель в словарь
  • метод model_dump_json,
    который преобразует модель в JSON-строку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить