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

Python中如何将嵌套实例对象快速转换为字典?

解决方案

方案1:使用dataclasses内置方法(无额外依赖,类定义可调整时首选)

给自定义类添加@dataclass装饰器,直接调用内置的asdict方法即可自动递归转换所有嵌套自定义类为字典,转换逻辑仅需1行:

from dataclasses import dataclass, asdict

# 仅需给原有类加装饰器,无需修改初始化逻辑
@dataclass
class Object:
    def __init__(self, string):
        self.string = string

@dataclass
class example:
    def __init__(self):
        self.obj = Object('hello')

# 转换代码仅1行
result = asdict(example())

输出结果完全匹配需求:

{'obj': {'string': 'hello'}}

方案2:不修改原有类定义,1行递归实现通用转换

如果不能改动原有类代码,直接定义递归转换函数即可,支持任意层级的嵌套类、嵌套列表/字典场景:

# 1行定义通用转换逻辑
to_dict = lambda o: o.__dict__ if hasattr(o, '__dict__') else o if type(o) not in (list, dict) else {k: to_dict(v) for k,v in o.items()} if isinstance(o, dict) else [to_dict(i) for i in o]

# 转换代码仅1行
result = to_dict(example())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:45:04