首页 > 解决方案 > pydantic.error_wrappers.ValidationError:B 的 1 个验证错误

问题描述

当我尝试使用 Pydantic 解析 JSON 对象时,我的 IDE 返回错误...

代码:

from pydantic import BaseModel, Field

class A(BaseModel):
    a: str = Field(None, alias="А")

class B(BaseModel):
    b: dict[str, A] = Field(None, alias="Б")

j = {
    "Б": {
        "А": "Значение"
    }
}

obj=B.parse_obj(j)

...和错误文本:

File "pydantic/main.py", line 572, in pydantic.main.BaseModel.parse_obj
  File "pydantic/main.py", line 400, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for B
Б -> А
  value is not a valid dict (type=type_error.dict)

请回答为什么会这样

标签: pythonjsonpydantic

解决方案


哦,原来如此简单……

from pydantic import BaseModel, Field


class A(BaseModel):
    a: str = Field(None, alias="А")


class B(BaseModel):
    b: A = Field(None, alias="Б")


j = {
    "Б": {
        "А": "Значение"
    }
}

obj = B.parse_obj(j)
print(obj.json())


推荐阅读