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

Python如何用指定键列表补全嵌套字典缺失键且保留原有值

嵌套字典补全缺失键实现

原有代码错误原因:嵌套遍历子字典键时,只要目标键el不等于当前遍历的子键,就会对el赋值0,导致已有键被重复覆盖为0。推荐使用字典内置的setdefault方法实现需求,该方法仅会在键不存在时执行赋值操作,不会覆盖已有值。

Diz = {'X080213_2_0004_2_000005': {'cHMW': 1, 'sRib': 9}, 'X280113_1_0002_2_000003': {'cMMW': 1, 'sRib': 7}}
# 修正后的目标键列表
L = ['Triangle','Traingle5R','Rectangle','cMMW','cHMW',"sRib"]

# 遍历所有子字典补全键
for sub_dict in Diz.values():
    for key in L:
        sub_dict.setdefault(key, 0)

# 验证输出
print(Diz)

运行后得到的字典完全符合预期输出要求。

导出为txt表格实现

以下代码会按「主键 + 子字典值」的格式导出,表头和每行值的顺序和目标键列表L完全对齐,用制表符分隔便于后续处理:

with open("diz_output.txt", "w", encoding="utf-8") as f:
    # 写入表头
    f.write("\t".join(["主键"] + L) + "\n")
    # 逐行写入数据
    for main_key, sub_dict in Diz.items():
        row_data = [main_key] + [str(sub_dict[k]) for k in L]
        f.write("\t".join(row_data) + "\n")

导出的txt文件每行对应一个主键及所有子字段值,可直接打开查看或导入到Excel等工具中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 16:15:03