pydantic中是否有任何内置方法来指定选项?例如,假设我想要一个字符串值,该值必须具有值“ foo”或“ bar”。
我知道我可以使用正则表达式验证来执行此操作,但是由于我将pydantic与FastAPI一起使用,因此用户只会看到所需的输入为字符串,但是当他们输入内容时,它将给出验证错误。pydantic的所有内置验证均显示在api界面中,因此如果出现类似
class Input(BaseModel):
option: "foo" || "bar"
解决方案
是的,您可以使用一个枚举:
class Choices(Enum):
foo = 'foo'
bar = 'bar'
class Input(BaseModel):
option: Choices
https://pydantic-docs.helpmanual.io/usage/types/#enums-and-choices
或者您可以使用Literal
:
class Input(BaseModel):
option: Literal['foo', 'bar']
https://pydantic-docs.helpmanual.io/usage/types/#literal-type
评论前必须登录!
注册