JSON怎么转Excel?3种实用方法轻松搞定数据转换
在数据处理中,我们常会遇到这样的场景:从API接口获取的数据是JSON格式,需要导出为Excel进行可视化分析或共享;或将JSON结构化数据整理成表格方便查看,JSON怎么转Excel”呢?本文将介绍3种实用方法,涵盖手动操作、代码编程和工具软件,满足不同技术背景用户的需求。
JSON与Excel:为什么需要转换?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,以“键值对”方式组织数据,结构灵活(支持对象、数组、嵌套等),常用于Web开发和API数据传输,而Excel(电子表格软件)则以行列网格形式展示数据,擅长数据计算、排序、筛选和可视化,适合人工分析和报告制作。
将JSON转Excel的核心目的,是将非结构化的JSON数据转化为结构化表格,让数据更易读、易操作,JSON数据可能是这样的:
[
{"id": 1, "name": "张三", "age": 25, "city": "北京", "hobbies": ["阅读", "游泳"]},
{"id": 2, "name": "李四", "age": 30, "city": "上海", "hobbies": ["游戏", "健身"]}
]
转成Excel后,会变成清晰的表格,每一行代表一条记录,每一列对应一个字段(如id、name、age等)。
方法1:手动转换(适合小数据量、无编程基础)
如果JSON数据量小(几十条以内),且不想安装工具或写代码,可以通过“复制粘贴+Excel手动整理”完成转换,步骤如下:
处理简单JSON(无嵌套、无非数组字段)
假设JSON是“对象数组”格式(最常见),每个对象是一行记录,字段直接作为列。
[
{"id": 1, "name": "产品A", "price": 100, "stock": 50},
{"id": 2, "name": "产品B", "price": 200, "stock": 30}
]
操作步骤:
- 复制JSON数据,粘贴到文本编辑器(如记事本、VS Code)中,确保格式整洁;
- 选中JSON部分,复制(Ctrl+C);
- 打开Excel,选中A1单元格,直接粘贴(Ctrl+V)——Excel会自动识别JSON结构,生成表格。
处理复杂JSON(含嵌套或数组字段)
如果JSON有嵌套(如"address": {"province": "北京", "city": "朝阳区"})或数组字段(如"hobbies": ["阅读", "游泳"]),手动转换需要“展开字段”:
- 嵌套字段:用“.”连接层级,如
address.province作为列名,内容填“北京”; - 数组字段:若需保留所有元素,可用逗号分隔(如“阅读, 游泳”),或拆分成多行(需手动复制)。
示例:
原始JSON:
[
{"id": 1, "name": "张三", "contact": {"email": "zhangsan@email.com", "phone": "13800138000"}, "tags": ["员工", "技术"]}
]
手动整理后Excel表格:
| id | name | contact.email | contact.phone | tags |
|---|---|---|---|---|
| 1 | 张三 | zhangsan@email.com | 13800138000 | 员工, 技术 |
优缺点
- 优点:无需工具,操作简单,适合临时处理少量数据;
- 缺点:效率低,易出错,无法处理复杂数据(如多层嵌套、大型数组)。
方法2:代码编程(适合大数据量、自动化需求)
如果JSON数据量大(上万条),或需要定期转换(如每日同步API数据到Excel),代码编程是最佳选择,Python凭借丰富的库,成为JSON转Excel的首选语言。
准备工作:安装Python库
打开命令行(Windows的cmd/Mac的Terminal),安装pandas(数据处理)和openpyxl(Excel操作库):
pip install pandas openpyxl
示例1:简单JSON转Excel(无嵌套)
假设JSON数据存储在data.json如下:
[
{"id": 1, "name": "产品A", "price": 100, "stock": 50},
{"id": 2, "name": "产品B", "price": 200, "stock": 30},
{"id": 3, "name": "产品C", "price": 150, "stock": 80}
]
Python代码:
import pandas as pd
# 读取JSON文件
df = pd.read_json('data.json')
# 保存为Excel文件(index=False表示不保存行索引)
df.to_excel('products.xlsx', index=False, engine='openpyxl')
print("转换完成!")
运行后,生成products.xlsx,表格与JSON结构完全对应。
示例2:复杂JSON转Excel(含嵌套/数组)
如果JSON有嵌套或数组,需先“扁平化”处理(将嵌套字段展开为一列)。
[
{
"id": 1,
"name": "张三",
"contact": {"email": "zhangsan@email.com", "phone": "13800138000"},
"hobbies": ["阅读", "游泳", "跑步"],
"education": [
{"level": "本科", "school": "北京大学"},
{"level": "硕士", "school": "清华大学"}
]
}
]
处理思路:
- 用
pandas.json_normalize()展开嵌套字段(支持多层); - 数组字段(如
hobbies)可直接转为字符串(逗号分隔),或进一步拆分(需自定义函数)。
Python代码:
import pandas as pd
from pandas import json_normalize
# JSON数据(可直接从文件读取,这里用示例变量)
json_data = [
{
"id": 1,
"name": "张三",
"contact": {"email": "zhangsan@email.com", "phone": "13800138000"},
"hobbies": ["阅读", "游泳", "跑步"],
"education": [
{"level": "本科", "school": "北京大学"},
{"level": "硕士", "school": "清华大学"}
]
}
]
# 展开嵌套字段(contact和education)
df = json_normalize(
json_data,
record_path=['education'], # 需要展开的数组字段
meta=[['id', 'name', 'contact.email', 'contact.phone', 'hobbies']] # 保留的顶层字段
)
# 处理hobbies数组(转为逗号分隔字符串)
df['hobbies'] = df['hobbies'].apply(lambda x: ', '.join(x) if isinstance(x, list) else x)
# 保存为Excel
df.to_excel('complex_data.xlsx', index=False, engine='openpyxl')
print("复杂JSON转换完成!")
运行后生成的Excel表格:
| id | name | contact.email | contact.phone | hobbies | level | school |
|---|---|---|---|---|---|---|
| 1 | 张三 | zhangsan@email.com | 13800138000 | 阅读, 游泳, 跑步 | 本科 | 北京大学 |
| 1 | 张三 | zhangsan@email.com | 13800138000 | 阅读, 游泳, 跑步 | 硕士 | 清华大学 |
优缺点
- 优点:自动化处理,支持大数据量,灵活度高(可自定义转换逻辑);
- 缺点:需编程基础,需安装Python环境。
方法3:工具软件(适合无编程基础、追求效率)
如果不想写代码,又觉得手动转换麻烦,可以使用专门的JSON转Excel工具软件,这类工具通常支持拖拽操作,自动识别JSON结构,适合技术小白或快速处理需求。
推荐工具1:在线转换工具(如“ConvertJSON”)
特点:无需安装,浏览器直接使用,适合临时转换。
操作步骤:
- 打开在线工具网站(如https://convertio.co/json-excel/ 或 https://www.json-to-excel.com/);
- 上传JSON文件(或直接粘贴JSON文本);
- 选择Excel格式(如.xlsx、.xls);
- 点击“转换”,下载生成的Excel文件。
注意:在线工具适合处理非敏感数据,避免泄露隐私。



还没有评论,来说两句吧...