如何让Pydantic BaseModel默认使用serialization_alias序列化
配置Pydantic BaseModel使model_dump()默认使用序列化别名
解决方案
只需在模型的配置中设置serialize_by_alias=True,即可让model_dump()默认使用字段的serialization_alias。
修改后的代码示例
from pydantic import BaseModel, Field class ProjectStage(BaseModel): name: dict[str, int] = Field(..., serialization_alias="Username") model_config = { "serialize_by_alias": True } a = ProjectStage(name={'foo': 1}) print(a.model_dump()) # 输出: {'Username': {'foo': 1}}
补充说明
如果习惯使用传统的Config类写法,也可以采用以下配置方式:
class ProjectStage(BaseModel): name: dict[str, int] = Field(..., serialization_alias="Username") class Config: serialize_by_alias = True
配置完成后,直接调用model_dump()就会自动使用字段的序列化别名,无需额外传入by_alias=True参数。
内容的提问来源于stack exchange,提问作者Silent Wraith
相关产品推荐
相关产品推荐

