gpt4 book ai didi

pydantic - 如何在 Pydantic 中创建互斥字段

转载 作者:行者123 更新时间:2023-12-02 16:00:14 35 4
gpt4 key购买 nike

我正在使用 Pydantic 为对象建模。如何使两个字段互斥?

例如,如果我有以下模型:

class MyModel(pydantic.BaseModel):
a: typing.Optional[str]
b: typing.Optional[str]

我希望字段 a 和字段 b 互斥。我只想设置其中一个。有办法实现吗?

最佳答案

您可以使用 pydantic.validator 装饰器来添加自定义验证。

from pydantic import BaseModel, validator

class MyModel(BaseModel):
a: Optional[str]
b: Optional[str]

@validator("b", always=True)
def mutually_exclusive(cls, v, values):
if values["a"] is not None and v:
raise ValueError("'a' and 'b' are mutually exclusive.")

return v

关于pydantic - 如何在 Pydantic 中创建互斥字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70848439/

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