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

Python嵌套字典重命名顶层key及删除内层指定key的问题求解

嵌套字典批量修改键名与删除指定键解决方案

可直接运行的实现代码

# 原始输入字典(已补全原示例中遗漏的键间逗号)
original_dict = {
    'dict_1': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3'], 'key3': ['value1', 'value2', 'value3']},
    'dict_2': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3'], 'key3': ['value1', 'value2', 'value3']}
}

result = {}
# 按名称排序顶层键,保证dict_1、dict_2的顺序对应A、B的生成顺序
for idx, old_key in enumerate(sorted(original_dict.keys())):
    # 生成顺序大写字母作为新键
    new_key = chr(ord('A') + idx)
    inner_dict = original_dict[old_key]
    # 删除key3,传入默认值避免key不存在时抛出KeyError
    inner_dict.pop('key3', None)
    result[new_key] = inner_dict

print(result)

运行后输出和你给出的期望结果完全一致:

{'A': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3']}, 'B': {'key1': ['data1', 'data2', 'data3'], 'key2': ['1', '2', '3']}}

常见问题定位

  • 字母生成错误:如果之前用ord('a')作为基准会生成小写字母,替换为ord('A')即可得到大写字母序列
  • 删除key3不生效:如果操作的是内层字典的深拷贝/浅拷贝,删除操作不会作用到最终存入结果的字典,直接操作原内层字典即可
  • 删除时报错:如果部分内层字典不存在key3,直接用del inner_dict['key3']或者不加默认值的pop会抛出KeyError,加上pop的第二个参数None即可兼容无key3的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:36:02