gpt4 book ai didi

python - 如何使用列表中的值作为 pydantic 验证器?

转载 作者:行者123 更新时间:2023-12-04 11:12:27 26 4
gpt4 key购买 nike

我想创建 pydantic 模型来验证用户表单。
我的模型值之一应该从名称列表中验证。
我成功地使用枚举创建模型如下:

from enum import Enum
class Fruit(str, Enum):
APPLE = 'apple'
BANANA = 'banana'
MELON = 'melon'

from pydantic import BaseModel
class UserForm(BaseModel):
fruit: Fruit
name: str
现在我想将枚举切换到我的代码中的值列表:
fruit = ['apple','banana','melon']
我怎样才能做到这一点?
tnx

最佳答案

您可以使用 validator通过以下方式:

 from pydantic import BaseModel, ValidationError, validator
class UserForm(BaseModel):
fruit: str
name: str
@validator('fruit')
def fruit_must_be_in_fruits(cls,fruit):
fruits=['apple','banana','melon']
if fruit not in fruits:
raise ValueError(f'must be in {fruits}')
return fruit
try:
UserForm(fruit="apple",name="apple")
except ValidationError as e:
print(e)
如果它不符合标准,它将引发验证错误。

关于python - 如何使用列表中的值作为 pydantic 验证器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65465555/

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