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

Python3如何将嵌套字典写入带表头的CSV文件?

嵌套字典转带表头CSV的实现方法

直接用Python内置的csv模块就能处理这种嵌套结构,以下是完整代码和步骤说明:

完整代码示例

import csv

headers = ['Location', 'Agent', 'Sales', 'Renewals', 'Leaves']
data = {'Location1': {'Bob': {'Sales': 2, 'Renewals': 1, 'Leaves': 1},
                      'Jim': {'Sales': 1, 'Renewals': 2, 'Leaves': 3}},
        'Location, 2': {'Tod': {'Sales': 1, 'Renewals': 3, 'Leaves': 1},
                        'Joe': {'Sales': 3, 'Renewals': 4, 'Leaves': 2}},
        'Location 3': {'Bill': {'Sales': 1, 'Renewals': 4, 'Leaves': 5}}
        }

# 打开文件并写入CSV
with open('sales_report.csv', 'w', newline='', encoding='utf-8') as csv_file:
    # 初始化DictWriter,指定表头字段
    csv_writer = csv.DictWriter(csv_file, fieldnames=headers)
    
    # 写入表头行
    csv_writer.writeheader()
    
    # 遍历嵌套字典生成每行数据
    for location, agent_data in data.items():
        for agent, metrics in agent_data.items():
            # 构造符合表头的行字典
            row = {
                'Location': location.replace(', ', ''),  # 可选:清理Location名称格式
                'Agent': agent,
                **metrics  # 展开销售数据字段
            }
            # 写入单行数据
            csv_writer.writerow(row)

关键说明

  • csv.DictWriter:专门用于按表头字段匹配字典键的写入工具,完美适配这种需要映射字段的场景。
  • 字典展开**metrics**:无需逐个手动赋值Sales、Renewals、Leaves,直接展开嵌套字典的键值对,简化代码。
  • 文件处理:with语句自动管理文件打开/关闭,避免资源泄漏;newline=''防止CSV中出现多余空行。
  • 可选格式调整:如果需要将Location, 2转为Location2,保留replace(', ', '')即可,不需要则直接用location。

运行代码后,生成的CSV内容与你期望的格式完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:12:53