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

Метод model_dump

Метод model_dump применяется к экземпляру модели BaseModel и возвращает представление данных в виде словаря Python. Первым параметром передаётся режим сериализации mode - 'python' или 'json'. Также доступны параметры include, exclude, by_alias, exclude_unset, exclude_defaults и exclude_none, которые управляют набором полей в результирующем словаре.

Синтаксис

model.model_dump( mode='python', include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, )

Пример

Давайте создадим модель User и получим её данные в виде словаря:

from pydantic import BaseModel class User(BaseModel): name: str age: int user = User(name='abcde', age=25) res = user.model_dump() print(res)

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

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

Пример

Давайте исключим поле age из результата с помощью параметра exclude:

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

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

{'name': 'abcde'}

Пример

Давайте включим в результат только поле name с помощью параметра include:

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

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

{'name': 'abcde'}

Пример

Давайте используем псевдонимы полей через параметр by_alias:

from pydantic import BaseModel, Field class User(BaseModel): name: str = Field(alias='userName') age: int user = User(userName='abcde', age=25) res = user.model_dump(by_alias=True) print(res)

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

{'userName': 'abcde', 'age': 25}

Пример

Давайте исключим поля, которые не были заданы явно, с помощью параметра exclude_unset:

from pydantic import BaseModel class User(BaseModel): name: str age: int = 18 user = User(name='abcde') res = user.model_dump(exclude_unset=True) print(res)

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

{'name': 'abcde'}

Пример

Давайте исключим поля со значением None с помощью параметра exclude_none:

from pydantic import BaseModel class User(BaseModel): name: str age: int | None = None user = User(name='abcde') res = user.model_dump(exclude_none=True) print(res)

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

{'name': 'abcde'}

Пример

Давайте вернём данные в режиме JSON с помощью параметра mode:

from datetime import datetime from pydantic import BaseModel class Event(BaseModel): title: str created: datetime event = Event(title='article', created=datetime(2024, 1, 1)) res = event.model_dump(mode='json') print(res)

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

{'title': 'article', 'created': '2024-01-01T00:00:00'}

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

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