簡體   English   中英

如何使用 pydantic 生成嚴格的 json 模式?

[英]How to generate a strict json schema with pydantic?

我最近開始使用 pydandic 生成 JSON 模式來驗證數據,但我發現默認情況下生成的模式不會抱怨我的 BaseModel 中的未知鍵。

例子:

class Query(BaseModel):
    id: str
    name: Optional[str]

即使 object 具有此處提到的兩個屬性之外的其他屬性,生成的模式也會通過驗證。

如果有人添加“foo:bar”屬性,我如何確保驗證失敗?

您需要在 model 上使用配置:

from pydantic import BaseModel, Extra
class Query(BaseModel):
    id: str
    name: Optional[str]
    class Config:
        extra = Extra.forbid

它默認為Extra.ignore ,另一個選項是Extra.allow ,它將任何額外的字段添加到生成的 object 中。

您也可以只使用字符串"ignore""allow""forbid"

以下是您可以使用的所有 model 配置選項:

https://pydantic-docs.helpmanual.io/usage/model_config/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM