You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pydantic解析模型列表?API响应转模型实例需求

如何将字典列表转换为Pydantic模型实例列表?

嗨,你的问题很常见,我来帮你梳理下可行的方案!你当前的循环写法完全没问题,但其实还有更简洁的方式可以实现,而且Pydantic本身也提供了批量处理的工具。

首先先确认下你的基础代码:

from pydantic import BaseModel

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

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

方案1:简化你的循环(兼容所有Pydantic版本)

你现在的循环逻辑是正确的,我们可以用Python的列表推导式把它压缩成一行代码,写法更简洁且可读性不差:

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

这和你原来的循环做的事情完全一样——遍历每个字典,用解包的方式创建User实例,然后收集到列表里。

方案2:用Pydantic v2的批量验证方法(推荐)

如果你已经升级到了Pydantic 2.x版本,官方提供了model_validate_list方法专门处理这种批量转换场景:

user_list = User.model_validate_list(users)

这个方法不仅能帮你把字典列表转成User实例列表,还会自动对每个字典做数据验证。比如如果某个字典里age是字符串而不是整数,它会直接抛出明确的验证错误,帮你提前排查数据问题,比手动循环更可靠。

两种方案都能达到你的需求,选哪个取决于你使用的Pydantic版本:如果需要兼容v1,列表推导式是稳妥之选;如果用v2,model_validate_list是更专业的做法。

内容的提问来源于stack exchange,提问作者Nymous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:16:06