如何根据动态路径向Python复杂嵌套字典中添加键值对
Python嵌套字典按指定路径插入内容实现方案
实现思路
- 遍历指定的路径列表,从根字典开始逐层向下取值,最终定位到路径指向的目标字典节点
- 在目标节点中新增自定义键,将待添加的字典作为对应值写入即可
- 若需要兼容路径中间节点不存在的场景,遍历过程中可使用
setdefault方法自动创建缺失的空字典节点
代码实现
基础版(路径已提前存在)
def add_to_nested_dict(original_dict, path, new_content, new_key="newkey"): # 逐层定位到目标节点 current = original_dict for k in path: current = current[k] # 写入新键值对 current[new_key] = new_content # 测试用例 d = {'parent1': {'2': {'3': {}}}, 'parent2': {'child1': {}, 'child2': {}}} u = {"4":"2"} path = ['parent2','child1'] add_to_nested_dict(d, path, u) print(d)
运行后输出和预期结果一致:{'parent1': {'2': {'3': {}}}, 'parent2': {'child1': {'newkey': {'4': '2'}}, 'child2': {}}}
增强版(自动创建缺失路径节点)
如果不确定路径是否存在,可以修改遍历逻辑自动补全中间节点:
def add_to_nested_dict(original_dict, path, new_content, new_key="newkey"): current = original_dict for k in path: # 键不存在时自动创建空字典节点 current = current.setdefault(k, {}) current[new_key] = new_content
内容的提问来源于stack exchange,提问作者user2865242
相关产品推荐
相关产品推荐

