Pydantic models

Содержание
Введение
Пример применения
BaseModel
Вывод сообщения об ошибке как JSON
Диапазон допустимых значений
@validator
@root_validator
Полный код примеров
Похожие статьи

Model properties

У моделей pydantic есть следующие методы и аттрибуты:

dict()

Возвращает словарь из аттрибутов модели и их значений;

returns a dictionary of the model's fields and values; cf. exporting models

В примере ниже я продемонстрирую .dict() а также сравню его с .json()

json()

Возвращает словарь из аттрибутов модели и их значений в представлении JSON;

returns a JSON string representation dict(); cf. exporting models

Пример для .dict() и .json()

from pydantic import BaseModel class User(BaseModel): id: int name = 'Jane Doe' user = User(id='123') print(user.dict()) print(user.json())

{'id': 123, 'name': 'Jane Doe'}

{"id": 123, "name": "Jane Doe"}

На этом примере разница между .json() и .dict() не слишком очевидна - поменялись кавычки и всё

Создадим чуть более сложный объект. Импортируем Tuple для создания кортежей

from pydantic import BaseModel from typing import Tuple class User(BaseModel): id: int sites = Tuple[str,...] user = User(id='123',sites='heihei.ru','eth1.ru') print(user.dict()) print(user.json())

{'id': 123, 'sites': ('heihei.ru', 'eth1.ru')}

{"id": 123, "sites": ["heihei.ru", "eth1.ru"]}

copy()

Возвращает копию (по умолчанию - поверхностную) модели.

returns a copy (by default, shallow copy) of the model; cf. exporting models

Обратите внимание, что поверхносная (неглубокая) копия будет изменяться если изменился ориганал.

Рассмотрите пример:

from pydantic import BaseModel class User(BaseModel): id: int name = 'Vladimir Vladimirovich' user = User(id='123') abuser = user.copy() print(user.json()) print(abuser.json()) user.id = 456 print(user.json()) print(abuser.json())

{"id": 123, "name": "Vladimir Vladimirovich"}
{"id": 123, "name": "Vladimir Vladimirovich"}
{"id": 456, "name": "Vladimir Vladimirovich"}
{"id": 456, "name": "Vladimir Vladimirovich"}

parse_obj()

a utility for loading any object into a model with error handling if the object is not a dictionary; cf. helper functions

parse_raw()

a utility for loading strings of numerous formats; cf. helper functions

parse_file()

like parse_raw() but for file paths; cf. helper function

from_orm()

loads data into a model from an arbitrary class; cf. ORM mode

schema()

returns a dictionary representing the model as JSON Schema; cf. schema

schema_json()

returns a JSON string representation of schema(); cf. schema

construct()

a class method for creating models without running validation; cf. Creating models without validation

__fields_set__

Set of names of fields which were set when the model instance was initialised

__fields__

a dictionary of the model's fields

__config__

the configuration class for the model, cf. model config

Похожие статьи
pydantic: валидация данных
Python
enumerate
Изображение баннера

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: