嵌套JSON转CSV遇列表索引错误,如何正确解析生成CSV?
问题分析与解决
错误原因
- 列表索引误用:你的JSON最外层是数组(
[]包裹),json.load(f)加载后得到的data是Python列表,列表仅支持整数/切片索引,用字符串"Id"索引自然会报错。 - 字段名不匹配:你要提取的"Attention"对应JSON里的字段是
Atten,代码里需要对应正确。
正确代码
import json import csv # 加载JSON数据 with open('averages.json', 'r', encoding='utf-8') as f: data = json.load(f) # 写入目标CSV filename = "data.csv" with open(filename, "w", newline='', encoding='utf-8') as file: csv_writer = csv.writer(file) # 写入表头 csv_writer.writerow(["Duration", "Attention"]) # 遍历列表中的每个数据对象 for item in data: # 提取对应字段,用get避免字段缺失报错 duration = item.get("Duration", "") attention = item.get("Atten", "") csv_writer.writerow([duration, attention])
代码说明
- 直接遍历
data列表,每个item是包含完整字段的字典,无需嵌套索引Id(你要的字段不在Id子字典里)。 item.get(key, "")可以防止字段缺失时抛出异常,默认返回空字符串。- 打开CSV时加
newline='',能避免Windows系统下生成多余空行。
内容的提问来源于stack exchange,提问作者humzaqureshi
相关产品推荐
相关产品推荐

