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

如何遍历嵌套列表与字典混合结构并筛选指定数据

解决方案

要遍历这种嵌套的字典和列表混合结构,收集目标值,用递归遍历是最直接的方式。以下是Python实现代码:

def collect_target_values(data):
    result = []
    # 处理字典类型
    if isinstance(data, dict):
        # 检查当前字典是否符合条件
        if data.get("field_need_to_filter") is True and "field_13" in data:
            result.append(data["field_13"])
        # 递归遍历字典的所有值
        for value in data.values():
            result.extend(collect_target_values(value))
    # 处理列表类型
    elif isinstance(data, list):
        # 递归遍历列表的每个元素
        for item in data:
            result.extend(collect_target_values(item))
    return result

# 你的示例数据
sample_data = {
    "field_1": "aaa",
    "field_2": [
        {
            "field_3": "bbb",
            "field_4": "ccc",
            "field_need_to_filter": False
        },
        {
            "field_5": "ddd",
            "field_6": [
                {
                    "field_7": "eee",
                    "field_8": [
                        {
                            "field_9": "fff",
                            "field_10": {
                                "field_11": "rrr",
                                "field_12": [
                                    {
                                        "field_13": "xxx",
                                        "field_need_to_filter": True
                                    },
                                    {
                                        "field_13": "yyy",
                                        "field_need_to_filter": True
                                    },
                                    {
                                        "field_13": "zzz",
                                        "field_need_to_filter": False
                                    }
                                ]
                            }
                        }
                    ]
                }
            ]
        }
    ]
}

# 调用函数并输出结果
print(collect_target_values(sample_data))  # 输出: ['xxx', 'yyy']

代码说明

  • 递归函数会逐层遍历嵌套结构:遇到字典就检查是否满足field_need_to_filter=True且存在field_13,满足则收集值;遇到列表就逐个遍历其中元素。
  • 用extend方法合并递归返回的结果列表,最终得到所有符合条件的field_13值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:15:44