Pydantic создать модель где используется символ "-"
Pydantic создать модель где используется символ -. Каким образом это делается?
Пример даты:
{"service": "lgd", "sub-forums": "123"}
Ответы (2 шт):
Используйте alias в Field модели
Пример:
from pydantic import BaseModel, Field
class Model(BaseModel):
service: str
sub_forums: int = Field(alias='sub-forums')
m = Model.parse_raw(b'{"service": "lgd", "sub-forums": "123"}')
print(m.sub_forums)
# 123
print(m.dict())
# {'service': 'lgd', 'sub_forums': 123}
Чтобы создать модель с помощью pydantic, вам нужно создать класс, наследующий от BaseModel, и определить атрибуты модели с помощью аннотаций типа. Например:
from pydantic import BaseModel
class User(BaseModel):
id: int
name: str
email: str
В этом примере у модели User есть три атрибута: id, name и email. Каждый атрибут определен с помощью аннотации типа, указывающей тип данных, который ожидается у этого атрибута.
Чтобы создать экземпляр модели, вы можете вызвать конструктор класса, передав в него словарь с данными:
data = {
"id": 123,
"name": "John Smith",
"email": "[email protected]",
}
user = User(**data)
В этом примере создается экземпляр модели User с атрибутами id, name и email, установленными в соответствии с данными из словаря data.
Вы можете использовать квадратные скобки [] для указания атрибута, использующего символ дефиса:
from pydantic import BaseModel
class MyModel(BaseModel):
service: str
["sub-forums"]: str
Также можете использовать атрибут alias для переименования атрибута с помощью символа дефиса:
from pydantic import BaseModel
class MyModel(BaseModel):
service: str
sub_forums: str = Field(..., alias="sub-forums")
Таким образом вы можете определить модель, использующую символ дефиса. При обработке данных с помощью этой модели вы сможете передать значение атрибута sub-forums с помощью ключа sub_forums.
Например:
model = MyModel({"service": "lgd", "sub_forums": "123"})
assert model.service == "lgd"
assert model["sub-forums"] == "123"