簡體   English   中英

如何在 pydantic 中 model 一個空字典

[英]How to model an empty dictionary in pydantic

我正在處理一個遠程 webhook 的請求,我想要驗證的數據要么在那里,要么是一個空字典。 如果它在那里,我希望它通過 model 驗證器運行,但如果它是一個空字典也不會阻塞。

輸入1:

{
   "something": {}
}

輸入 2:

{
    "something": {
        "name": "George",
    }
}

輸入 3:

{
    "something": {
        "invalid": true
    }
}
class Person(BaseModel):
    name: str

class WebhookRequest(BaseModel):
    something: Union[Person, Literal[{}]]  # invalid literal

我將如何在 Pydantic 中進行 model 之類的操作,以使輸入 1 和 2 成功,而輸入 3 失敗?

使用extra = "forbid"選項來禁止額外字段並使用空 model 來表示空字典。

from pydantic import BaseModel


class Empty(BaseModel):
    ...

    class Config:
        extra = "forbid"


class Person(BaseModel):
    name: str

    class Config:
        extra = "forbid"


class WebhookRequest(BaseModel):
    something: Person | Empty

    class Config:
        extra = "forbid"

暫無
暫無

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

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