欢迎光临
我们一直在努力

如何在python pydantic basemodel中要求预定义的字符串值?

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

赞(3) 打赏
转载请注明来源:IT技术资讯 » 如何在python pydantic basemodel中要求预定义的字符串值?

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏