Aza*_*zat 9 python json pydantic
当我尝试使用 Pydantic 解析 JSON 对象时,我的 IDE 返回错误...
\n代码:
\nfrom pydantic import BaseModel, Field\n\nclass A(BaseModel):\n a: str = Field(None, alias="\xd0\x90")\n\nclass B(BaseModel):\n b: dict[str, A] = Field(None, alias="\xd0\x91")\n\nj = {\n "\xd0\x91": {\n "\xd0\x90": "\xd0\x97\xd0\xbd\xd0\xb0\xd1\x87\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5"\n }\n}\n\nobj=B.parse_obj(j)\nRun Code Online (Sandbox Code Playgroud)\n...和错误文本:
\nFile "pydantic/main.py", line 572, in pydantic.main.BaseModel.parse_obj\n File "pydantic/main.py", line 400, in pydantic.main.BaseModel.__init__\npydantic.error_wrappers.ValidationError: 1 validation error for B\n\xd0\x91 -> \xd0\x90\n value is not a valid dict (type=type_error.dict)\nRun Code Online (Sandbox Code Playgroud)\n请回答为什么会发生这种情况
\n哦,太简单了......不用使用类型,只需使用已经与子对象匹配的dictmodel 。A
from pydantic import BaseModel, Field\n\n\nclass A(BaseModel):\n a: str = Field(None, alias="\xd0\x90")\n\n\nclass B(BaseModel):\n b: A = Field(None, alias="\xd0\x91")\n\n\nj = {\n "\xd0\x91": {\n "\xd0\x90": "\xd0\x97\xd0\xbd\xd0\xb0\xd1\x87\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5"\n }\n}\n\nobj = B.parse_obj(j)\nprint(obj.json())\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
64833 次 |
| 最近记录: |