gpt4 book ai didi

python - 我可以使用 "unaliased"属性名称初始化 pydantic 模型吗?

转载 作者:行者123 更新时间:2023-12-05 01:52:51 30 4
gpt4 key购买 nike

我正在使用一个 API,其中用于创建组的模式是有效的:

class Group(BaseModel):
identifier: str

我希望我可以这样做:

class Group(BaseModel):
groupname: str = Field(..., alias='identifier')

但是使用该配置无法使用名称 groupname 设置属性值。也就是说,运行失败并出现 field required 错误:

>>> g = Group(groupname='foo')
pydantic.error_wrappers.ValidationError: 1 validation error for Group
identifier
field required (type=value_error.missing)

是否可以使用别名或实际属性名称来设置属性值?我希望这两个是等价的:

>>> Group(identifier='foo')
>>> Group(groupname='foo')

最佳答案

也许您正在寻找 allow_population_by_field_name config option :

whether an aliased field may be populated by its name as given by the model attribute, as well as the alias (default: False)

from pydantic import BaseModel, Field


class Group(BaseModel):
groupname: str = Field(..., alias='identifier')

class Config:
allow_population_by_field_name = True


print(repr(Group(identifier='foo')))
print(repr(Group(groupname='bar')))

输出:

Group(groupname='foo')
Group(groupname='bar')

关于python - 我可以使用 "unaliased"属性名称初始化 pydantic 模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71444328/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com