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

如何在将Python字典导出为CSV时添加索引列?

解决方案

要给导出的CSV添加索引列,你需要在构造行数据时加入索引字段,同时修正原代码中的拼写错误。以下是两种可行的修改方式:

方式一:逐行构建带索引的行数据

import csv

new_dict = {'H1': ['a1', 'a2', 'a3'], 'H2': ['b1', 'b2'], 'H3': ['c1']}

csv_rows = []
row_index = 1  # 索引从1开始,若要从0开始则初始化为0
for key, values in new_dict.items():
    for addr in values:
        csv_rows.append({'Index': row_index, 'Key': key, 'Value': addr})
        row_index += 1

with open('result.csv', 'w', newline='') as f:
    # 指定包含索引的表头字段
    writer = csv.DictWriter(f, fieldnames=['Index', 'Key', 'Value'])
    # 修正原代码的拼写错误:writerheader → writeheader
    writer.writeheader()
    writer.writerows(csv_rows)

方式二:用列表推导式结合enumerate简化代码

import csv

new_dict = {'H1': ['a1', 'a2', 'a3'], 'H2': ['b1', 'b2'], 'H3': ['c1']}

# 先扁平化字典的键值对,再用enumerate生成索引
flat_entries = ((key, addr) for key, vals in new_dict.items() for addr in vals)
csv_rows = [{'Index': idx, 'Key': key, 'Value': addr} 
            for idx, (key, addr) in enumerate(flat_entries, start=1)]

with open('result.csv', 'w', newline='') as f:
    writer = csv.DictWriter(f, fieldnames=['Index', 'Key', 'Value'])
    writer.writeheader()
    writer.writerows(csv_rows)

关键修改说明

  1. 添加索引字段:在每个行数据字典中加入Index键,赋值为递增的序号(默认从1开始,符合表格索引的常规习惯,若需从0开始则去掉enumerate的start=1参数)。
  2. 更新表头字段:修改DictWriter的fieldnames参数,将Index列为第一个表头。
  3. 修正拼写错误:原代码中的writer.writerheader()是错误写法,正确应为writer.writeheader(),否则会触发AttributeError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:55:18