You need to enable JavaScript to run this app. 使用Openpyxl将含嵌套结构的JSON转换为Excel的问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

使用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导出逻辑保持不变,符合你的使用习惯

输出效果

目标输出Excel文件示例

内容的提问来源于stack exchange,提问作者user16073125

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 07:15:07