我最近开始使用 pydandic 生成用于验证数据的 JSON 模式,但我发现默认情况下生成的模式不会提示我的 BaseModel 中的未知键。
例子:
class Query(BaseModel):
id: str
name: Optional[str]
即使对象具有这里提到的两个属性之外的其他属性,生成的模式也会通过验证。如果有人添加了“foo:bar”属性,我如何确保验证会失败?
最佳答案
您需要在模型上使用配置:
from pydantic import BaseModel, Extra
class Query(BaseModel):
id: str
name: Optional[str]
class Config:
extra = Extra.forbid
它默认为 Extra.ignore
,另一个选项是 Extra.allow
,它向结果对象添加任何额外的字段。您也可以只使用字符串
"ignore"
、 "allow"
或 "forbid"
以下是您可以使用的所有模型配置选项:https://pydantic-docs.helpmanual.io/usage/model_config/
关于python - 如何使用 pydantic 生成严格的 json 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65738013/