首页 > 解决方案 > 当 KEY/VALUE 对不存在时如何继续写入 .csv:KeyError

问题描述

数据示例:

[
{"fruit": "apple", "color": "red"},
{"fruit": "banana", "color": "yellow"},
{"fruit": "orange"}
]

我写入 .csv 文件的代码:

for item in a["data"]:
    csv_file.writerow([item['fruit'], item['color']])

对于水果“橙色”,它没有“颜色”k/v 对,所以当我的代码遇到 JSON 的那部分时,我收到一个错误:

键错误:'颜色'

有没有办法忽略该对象不存在,而只是继续编写 .csv 文件?

标签: pythonjsonapiendpoint

解决方案


您可以显式检查"color"密钥是否存在:

for item in a["data"]:
    if 'color' in item:
        csv_file.writerow([item['fruit'], item['color']])

或者您可以忽略KeyError该部分代码中的异常:

for item in a["data"]:
    try:
        csv_file.writerow([item['fruit'], item['color']])
    except KeyError:
        pass

推荐阅读