python - 如何使用 Pydantic 解析模型列表

标签 python pydantic

我使用 Pydantic 对 API 的请求和响应进行建模。

我定义了一个User类:

from pydantic import BaseModel

class User(BaseModel):
  name: str
  age: int

我的 API 返回一个用户列表,我通过请求检索该列表并将其转换为字典:

users = [{"name": "user1", "age": 15}, {"name": "user2", "age": 28}]

如何将此字典转换为 User 实例列表?

我现在的解决方案是

user_list = []
for user in users:
  user_list.append(User(**user))

最佳答案

Pydantic V1:

现在可以使用 parse_obj_as 实现这一点。

from pydantic import parse_obj_as

users = [
    {"name": "user1", "age": 15}, 
    {"name": "user2", "age": 28}
]

m = parse_obj_as(List[User], users)

Pydantic V2:

使用Type Adapter .

from pydantic import TypeAdapter

users = [
    {"name": "user1", "age": 15}, 
    {"name": "user2", "age": 28}
]

ta = TypeAdapter(List[User])
m = ta.validate_python(users)

关于python - 如何使用 Pydantic 解析模型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55762673/

相关文章:

python - 如何自定义 FastAPI 请求体文档

python - python base64.urlsafe_b64decode(client_secret) 的 R 等效项是什么?

python - 检查 JSON 字符串是否是有效的 Pydantic 模式

python - 为什么在 args 中使用一个参数时函数的结果不同?

python - Flask+Celery 作为守护进程

python - Pydantic:使用不同编码导出相同类型的字段

python - 尽管数据库/模型中存在数据,FastAPI 并未选择嵌套模式

python - 如何使用 pydantic 模式从 sqlalchemy 关系中单独获取列

python - Python中的Matplotlib-绘制形状并对其进行动画处理

python - 如何将条目输入保存到 tkinter 中的变量我正在使用 python 3