首页 > 解决方案 > 来自 CSV 库的 Python writerow() 抛出 KeyError

问题描述

我有以下代码,我正在尝试将字典的内容写入 CSV 文件。

import csv

my_dict = {
    "Power outage": 3,
    "System overload": 3,
    "Pasta not aldente": 3,
    "No internet": 2,
    "No red marker": 1,
}

with open("testCsv.csv", "w", newline="") as file:
    fieldnames = ["Type", "Count"]
    writer = csv.DictWriter(file, delimiter=",", fieldnames=fieldnames)

    writer.writeheader()
    for k, v in my_dict.items():
        writer.writerow({my_dict[k], my_dict[v]})
file.close()

当我运行该文件时,我收到以下错误,无法在线找到任何答案或提示。

Traceback (most recent call last):
  File "csvWrite.py", line 17, in <module>
    writer.writerow({my_dict[k], my_dict[v]})
KeyError: 3

标签: pythonpython-3.xcsv

解决方案


确保在写入 CSV 之前正确地遍历my_dict并分配键值对。

import csv

my_dict = {
    "Power outage": 3,
    "System overload": 3,
    "Pasta not aldente": 3,
    "No internet": 2,
    "No red marker": 1,
}

with open("testCsv.csv", "w", newline="") as file:
    fieldnames = ["Type", "Count"]
    writer = csv.DictWriter(file, delimiter=",", fieldnames=fieldnames)

    writer.writeheader()
    for key in my_dict:
        writer.writerow({fieldnames[0]: key, fieldnames[1]: my_dict[key]})
file.close()

推荐阅读