如何使用 pydantic 生成严格的 json 模式?
How to generate a strict json schema with pydantic?
我最近开始使用 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"
以下是您可以使用的所有模型配置选项:
我最近开始使用 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"
以下是您可以使用的所有模型配置选项: