例如,您可以使用
model_validator
将列表解析为
Item
模型
from pydantic import BaseModel, model_validator
data = {
"date": "2024-02-05 15:34:44",
"status": True,
"data": [
[1, "red"],
[2, "blue"],
[3, "yellow"]
]
}
class Item(BaseModel):
id: int
color: str
@model_validator(mode="before")
@classmethod
def validate(cls, values):
id, color = values
return {"id": id, "color": color}
class Model(BaseModel):
date: datetime
status: bool
data: list[Item]
print(Model(**data))
打印内容:
date=datetime.datetime(2024, 2, 5, 15, 34, 44) status=True data=[Item(id=1, color='red'), Item(id=2, color='blue'), Item(id=3, color='yellow')]
可能还有其他方法,例如
AliasPath
,但这个似乎是最简单的。