我的API收到了以下字符串:
'{"data": 123, "inner_data": "{\\"color\\": \\"RED\\"}"}'
我的目标是构建一个能够验证外部和内部数据字段的pydantic
模型.
因此,我构建了以下模型:
from pydantic import BaseModel
class InnerData(BaseModel):
color: str
class Expected(BaseModel):
data: int
inner_data: InnerData
但当我运行以下命令时:
incoming_json_string = '{"data": 123, "inner_data": "{\\"color\\": \\"RED\\"}"}'
expected = Expected.model_validate_json(incoming_json_string)
我得到了:
Traceback (most recent call last):
File ".../site-packages/pydantic/main.py", line 532, in model_validate_json
return cls.__pydantic_validator__.validate_json(json_data, strict=strict, context=context)
pydantic_core._pydantic_core.ValidationError: 1 validation error for Expected
inner_data
Input should be an object [type=model_type, input_value='{"color": "RED"}', input_type=str]
For further information visit https://errors.pydantic.dev/2.5/v/model_type
回溯中的链接没有帮助,因为它告诉我数据是一个字符串,但应该是一个模型.但这就是我在做inner_data: InnerData
米的时候想出来的.我该试试什么呢?