【Python】Pydantic多字段映射到一个字段

背景

在开发过程中,由于上游数据结构不确定,或者数据结构确定,但大部分相同,部分字段不同(含义相同的情况)

如有时上游给到数据叫【id】,有时叫【code】,为了兼容这种情况,减少coding,我们可以通过Pydantic来解决该问题。

解决方案

旧版本处理方案

python 复制代码
class Foo(BaseModel):
    id: int =Field(..., alias="item_id")
    field1: str
    ...
    
    class Config:
        allow_population_by_field_name = True
# 结果验证
Foo.parse_obj({"item_id": 123, "field1": "value1"})
Foo.parse_obj({"id": 234, "field1": "value1"})

新版本处理方案

参考官方

python 复制代码
class Foo(BaseModel):
    id: int =Field(..., alias="item_id")
    field1: str
    ...
    
    class Config:
        populate_by_name = True

# 或者
class Foo(BaseModel):
    model_config = ConfigDict(populate_by_name=True)
    id: int =Field(..., alias="item_id")
    field1: str
    ...
# 结果验证
Foo.model_validate({"item_id": 123, "field1": "value1"})
Foo.model_validate({"id": 234, "field1": "value1"})
相关推荐
CTA终结者5 小时前
2026年AI量化提效,工具重点要按阶段调整
人工智能·python
xxie1237945 小时前
Python 闭包:函数嵌套的 “状态捕获” 机制
开发语言·python
c_lb72885 小时前
最新AI量化提效,交易认知和技术实现要接上
人工智能·python
机汇五金_5 小时前
钣金外壳定制厂家助力设备升级
大数据·人工智能·python·物联网
xxie1237946 小时前
Python 闭包的调用方法与实践
开发语言·python
HZZD_HZZD6 小时前
用电行为异常检测VAE-基于PyTorch设计用电行为异常检测模型:从时序特征提取到变分自编码器部署的完整实战
人工智能·pytorch·python
思-无-涯6 小时前
AI Agent技能编写与质量保障
人工智能·python
2601_956319887 小时前
2026年下半年AI量化学习,分清表达开发和验证
人工智能·python
CTA量化套保7 小时前
最新AI量化效率提升,用示例拆解练习压实路径
人工智能·python
zhiSiBuYu05177 小时前
混合检索实战指南:关键词与向量的完美融合
人工智能·python·机器学习