我使用Pydantic来对API的请求和响应进行建模。
我定义了一个User
类:
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
我的API返回一个用户列表,我使用requests
获取并将其转换为字典:
users = [{"name": "user1", "age": 15}, {"name": "user2", "age": 28}]
我该如何将这个字典转换为一个User
实例列表?
我目前的解决方案是:
user_list = []
for user in users:
user_list.append(User(**user))
fastapi.encoders.jsonable_encoder
来对数据进行编码,例如jsonable_encoder(my_user_list)
。 - LeoRochael__root__
值不是有效的列表(类型为type_error.list
)。 - Jonathan MuganTypeAdapter(List[User]).validate_python(users)
。此外,如果您可以访问原始的 JSONbytes
/str
,您可能还希望将解析步骤委托给 Pydantic(跳过中间的dict
表示)。 例如:TypeAdapter(List[User]).validate_json(json_bytes)
。 - Danilo Gómez