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

Pydantic模型中by_alias转字典后如何反向解包映射字段?

解决方法

方法1:使用Pydantic内置的parse_obj方法

直接调用模型的parse_obj方法传入字典,它会自动识别别名并映射到对应的字段:

data = {"_id": "your-id-value"}
obj = ClassWithId.parse_obj(data)

方法2:配置模型允许通过别名赋值

在模型内部添加Config类,开启allow_population_by_field_name选项,这样就可以直接用ClassWithId(**dict)的方式创建实例:

from typing import Optional
from pydantic import BaseModel, Field

class ClassWithId(BaseModel):
    id: Optional[str] = Field(None, alias='_id')
    
    class Config:
        allow_population_by_field_name = True

# 现在直接解包字典即可
data = {"_id": "your-id-value"}
obj = ClassWithId(**data)

allow_population_by_field_name的作用是让模型同时接受字段名(id)和别名(_id)作为参数,两种传参方式都能正确映射到对应的字段。

内容的提问来源于stack exchange,提问作者Alex K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:10:03