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

如何移除Python嵌套字典的指定key且保留值并合并到上层节点

嵌套字典递归移除指定Key并保留值的实现方案

实现逻辑

  • 递归遍历所有嵌套的字典、列表结构
  • 处理列表时遍历每个元素,若元素是包含目标Key的字典,将该Key对应的列表值展开后追加到上层列表
  • 处理字典时匹配到目标Key直接返回处理后的对应值,不保留该Key;其余键值对递归处理值后正常保留
  • 基础数据类型直接返回原值

完整代码

def remove_key_and_flatten_value(obj, target_key):
    # 处理列表类型
    if isinstance(obj, list):
        new_list = []
        for item in obj:
            processed = remove_key_and_flatten_value(item, target_key)
            # 若当前元素是包含目标Key的字典,展开值追加到列表
            if isinstance(item, dict) and target_key in item:
                new_list.extend(processed)
            else:
                new_list.append(processed)
        return new_list
    # 处理字典类型
    elif isinstance(obj, dict):
        new_dict = {}
        for k, v in obj.items():
            if k == target_key:
                # 匹配到目标Key直接返回处理后的值,不保留当前Key
                return remove_key_and_flatten_value(v, target_key)
            new_dict[k] = remove_key_and_flatten_value(v, target_key)
        return new_dict
    # 其他基础类型直接返回
    else:
        return obj

使用示例

# 输入示例字典
dict_x = {"key1": "value1", "key2": [{"key3": "value3"}, {"key4": [{"key5": "value5"}, {"key6": "value6"}]}]}
# 调用函数移除key4
result = remove_key_and_flatten_value(dict_x, "key4")
print(result)

输出结果

{'key1': 'value1', 'key2': [{'key3': 'value3'}, {'key5': 'value5'}, {'key6': 'value6'}]}

适用场景说明

支持任意深度的嵌套结构处理,若待移除Key对应的不是列表类型,可根据实际需求调整返回逻辑即可适配。

内容的提问来源于stack exchange,提问作者Ali Uyanık

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:54:01