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

如何在Python中将Pydantic派生类实例转换为基类?

Pydantic派生类转基类的实现方法

方法1:通过字段过滤构造基类实例

利用Pydantic模型的model_dump()方法导出数据,只保留基类定义的字段,再传入基类构造函数完成转换:

from pydantic import BaseModel

class A(BaseModel):
    a: str

class B(A):
    b: int

# 示例B类型实例
x = B(a="sample_data", b=789)

# 转换为A类型
a_instance = A(**x.model_dump(include=A.model_fields.keys()))

方法2:使用Pydantic v2的model_copy()方法

如果是Pydantic v2版本,可以直接通过model_copy()指定目标模型类型,自动忽略派生类的额外字段:

a_instance = x.model_copy(update={}, model=A)

方法3:在派生类中封装转换方法

在派生类里定义一个转换方法,直接返回基类实例,代码逻辑更直观:

class B(A):
    b: int

    def convert_to_base(self) -> A:
        return A(a=self.a)

# 调用转换方法得到A实例
a_instance = x.convert_to_base()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:00:46