使用Openpyxl将含嵌套结构的JSON转换为Excel的问题咨询
嵌套JSON转Excel解决方案
你当前代码的核心问题是没有定位到嵌套JSON中用户数据的实际存储层级,原始JSON的用户数据存储在根节点的__collections__属性下的users属性中,只需要调整遍历的数据源即可实现需求。
修正后的完整代码
import json from openpyxl import Workbook if __name__ == '__main__': # 读取JSON文件,添加utf-8编码避免兼容问题 with open("Test.json", encoding="utf-8") as json_file: json_data = json.load(json_file) # 初始化Excel工作簿和工作表 wb = Workbook() ws = wb.active ws.title = "Test" # 写入表头 ws.cell(1, 1, "User ID") ws.cell(1, 2, "Age") ws.cell(1, 3, "Location") row = 1 # 定位到嵌套结构中的users节点遍历用户数据 users_dict = json_data["__collections__"]["users"] for user_id, user_info in users_dict.items(): row += 1 ws.cell(row, 1, user_id) ws.cell(row, 2, user_info["age"]) ws.cell(row, 3, user_info["location"]) # 保存Excel文件 wb.save("Test.xlsx")
修改说明
- 调整遍历数据源:将原本遍历JSON根节点,改为遍历
json_data["__collections__"]["users"]节点,该节点下的所有键值对就是目标用户数据 - 使用
items()方法同时获取用户ID和用户属性字典,简化代码逻辑 - 新增读取文件的utf-8编码声明,避免不同环境下的编码兼容问题
- 原有表头设置、Excel导出逻辑保持不变,符合你的使用习惯
输出效果

内容的提问来源于stack exchange,提问作者user16073125
相关产品推荐
相关产品推荐

