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

Python3 嵌套字典(Nested Dictionary)覆盖写入的优雅实现方案问询

Python 嵌套字典深度合并方案

无依赖递归实现

这是最通用的方案,不需要额外安装第三方库,支持任意层级的嵌套字典合并:

def deep_merge(origin: dict, overwrite: dict) -> dict:
    result = origin.copy()
    for key, value in overwrite.items():
        # 如果当前key在两个字典里都是字典类型,就递归合并
        if isinstance(value, dict) and key in result and isinstance(result[key], dict):
            result[key] = deep_merge(result[key], value)
        # 否则直接用overwrite的值覆盖
        else:
            result[key] = value
    return result

使用示例:

var_dict_config = deep_merge(var_dict_config, var_dict_config_overwrite)

第三方库实现(适合复杂场景)

如果项目允许引入依赖,可直接使用成熟的deepmerge库,支持自定义列表、集合等复杂类型的合并策略:

  1. 安装库:
    pip install deepmerge
  2. 使用示例:
from deepmerge import always_merger

# 合并完成后overwrite的字段会自动覆盖原字典同名字段
var_dict_config = always_merger.merge(var_dict_config.copy(), var_dict_config_overwrite)

注意:上述两种方案默认都不会修改原始的var_dict_config和var_dict_config_overwrite对象,如果不需要保留原对象,可省略.copy()操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 23:54:03