如何修改Python代码将JSON中inventory嵌套值求和后写入CSV
问题解决:JSON嵌套inventory字段求和并写入CSV
直接上修改后的可运行代码,解决嵌套字典求和以及子字段访问的问题:
import json import csv # 读取JSON文件 with open('input.json', 'r', encoding='utf-8') as json_file: data = json.load(json_file) # 提取results列表中的数据并处理inventory字段 processed_data = [] for item in data['results']: # 对inventory字典的所有数值求和 inventory_total = sum(item['inventory'].values()) # 构造要写入CSV的行数据,按需添加其他字段 processed_item = { 'id': item.get('id'), 'name': item.get('name'), 'inventory': inventory_total, # 其他需要的字段照此格式添加 } processed_data.append(processed_item) # 写入CSV文件 if processed_data: # 取第一个item的键作为CSV表头 headers = processed_data[0].keys() with open('output.csv', 'w', newline='', encoding='utf-8') as csv_file: writer = csv.DictWriter(csv_file, fieldnames=headers) writer.writeheader() writer.writerows(processed_data)
关键修改说明
- 访问results子字段:JSON数据里的
results是一个列表,直接通过data['results']获取,遍历每个元素就能拿到条目下的inventory、id等子字段。 - inventory求和:用
sum(item['inventory'].values())计算嵌套字典数值总和——values()提取字典内所有数字,sum()完成求和,替代原直接写入整个字典的操作。 - 兼容空值:用
item.get('字段名')替代直接索引,避免部分条目缺失字段时抛出错误。
内容的提问来源于stack exchange,提问作者alex1290
相关产品推荐
相关产品推荐

