JSON数据如何高效存储到Excel?实用方法全解析
在数据处理场景中,JSON和Excel是两种最常用的数据格式——JSON以轻量、灵活的结构化特性成为API交互和配置文件的首选,而Excel则以直观的表格形式和强大的编辑功能成为数据分析和可视化的“利器”,当需要将JSON数据导入Excel进行进一步分析或展示时,如何高效完成转换?本文将从基础方法到进阶技巧,详细拆解“JSON怎么存Excel”的完整流程。
为什么需要将JSON存入Excel?
在讨论具体方法前,先明确两个场景的互补性:
- JSON的优势:支持嵌套结构、键值对存储,适合描述复杂对象(如用户信息、API响应),且机器可读性强,适合程序间数据传递。
- Excel的优势:以二维表格呈现数据,支持公式计算、图表绘制、筛选排序,方便人工编辑和业务分析。
将JSON存入Excel的核心需求,就是将JSON的“非结构化/半结构化”数据转换为Excel的“结构化表格”,同时保留数据的可读性和可操作性。
基础方法:手动转换(适用于少量数据)
如果JSON数据量较小(如几十条记录),最直接的方式是手动处理,无需借助工具。
分析JSON结构,确定表格表头
先明确JSON的层级结构,以一个简单的用户列表JSON为例:
[
{
"id": 1,
"name": "张三",
"age": 25,
"contact": {
"email": "zhangsan@example.com",
"phone": "13800138000"
},
"hobbies": ["阅读", "游泳"]
},
{
"id": 2,
"name": "李四",
"age": 30,
"contact": {
"email": "lisi@example.com",
"phone": "13900139000"
},
"hobbies": ["游戏", "篮球"]
}
]
- 顶层结构:数组(
[]),包含多个用户对象()。 - 对象字段:
id、name、age是直接字段,contact是嵌套对象,hobbies是数组字段。
根据结构确定Excel表头:对于嵌套字段,用“点号”连接层级(如contact.email);对于数组字段,可直接保留为字符串(如"阅读,游泳")。
复制粘贴并调整格式
- 将JSON数据粘贴到文本编辑器(如VS Code、记事本)中,确保格式正确(无多余符号)。
- 按照表头逐行提取数据,填充到Excel单元格中。
| id | name | age | contact.email | contact.phone | hobbies |
|----|------|-----|---------------|---------------|---------------|
| 1 | 张三 | 25 | zhangsan@xxx | 13800138000 | 阅读,游泳 |
| 2 | 李四 | 30 | lisi@xxx | 13900139000 | 游戏,篮球 |
处理特殊情况
- 嵌套对象:若嵌套层级较深(如
contact.address.city),需逐级展开为独立列。 - 数组字段:若需将数组拆分为多行(如一个用户对应多个爱好,每行显示一个爱好),需手动拆分并填充
id、name等重复字段。
优点与局限
- 优点:无需工具,操作简单,适合临时少量数据。
- 局限:效率低、易出错,无法处理复杂数据(如多层嵌套、大型数组)。
进阶方法:借助工具自动转换(推荐)
当JSON数据量较大(如几百条以上)或结构复杂时,手动处理显然不现实,此时可通过专业工具实现“一键转换”,推荐以下4种方法:
方法1:使用Excel内置功能(2021及以上版本支持)
新版Excel已内置JSON解析功能,适合处理本地JSON文件或API返回的JSON数据。
操作步骤:
- 准备JSON文件:将JSON数据保存为
.json文件(如data.json),确保格式正确(数组形式,每个元素是一个对象)。 - 导入数据:打开Excel,点击【数据】→【获取数据】→【从文件】→【从JSON】,选择
data.json文件。 - 转换数据:在弹出的“Power Query编辑器”中,JSON会自动解析为表格结构,若存在嵌套字段,点击列标题旁的“展开”按钮(图标为两个双向箭头),选择“展开记录”或“展开数组”:
- 嵌套对象(如
contact):点击“展开记录”,勾选子字段(email、phone)。 - 数组字段(如
hobbies):点击“展开数组”,将数组元素拆分为多列(若需多行,需后续处理)。
- 嵌套对象(如
- 加载到Excel:调整好表头后,点击【关闭并加载】,数据将自动导入到工作表中。
注意事项:
- JSON必须是“对象数组”格式(如
[{...}, {...}]),若为单个对象(如{"id":1, "name":"张三"}),需手动转为数组形式。 - 若JSON数据来自API,可直接在【获取数据】→【从其他来源】→【从Web】中输入API地址,选择JSON数据导入。
方法2:通过Python脚本(灵活可控,适合开发者)
Python是数据处理的首选语言,借助pandas和openpyxl库,可轻松实现JSON与Excel的互转,尤其适合批量处理或自动化场景。
环境准备:
安装必要库:
pip install pandas openpyxl
核心代码:
import pandas as pd
import json
# 示例JSON数据(可直接从文件读取)
json_data = """
[
{
"id": 1,
"name": "张三",
"age": 25,
"contact": {
"email": "zhangsan@example.com",
"phone": "13800138000"
},
"hobbies": ["阅读", "游泳"]
},
{
"id": 2,
"name": "李四",
"age": 30,
"contact": {
"email": "lisi@example.com",
"phone": "13900139000"
},
"hobbies": ["游戏", "篮球"]
}
]
"""
# 方法1:直接转换(嵌套字段转为字典,数组转为字符串)
data = json.loads(json_data)
df = pd.DataFrame(data)
print("原始转换(嵌套字段未展开):")
print(df)
# 方法2:展开嵌套字段(适合多层嵌套)
df = pd.json_normalize(data) # 自动展开嵌套对象,用点号连接层级
print("\n展开嵌套字段后:")
print(df)
# 方法3:处理数组字段(拆分为多行)
# 若需将hobbies数组拆分为多行(每行一个爱好),需先展开数组
df_explode = df.explode("hobbies") # 仅适用于pandas 1.3.0+
print("\n数组字段拆分为多行后:")
print(df_explode)
# 保存为Excel文件
df.to_excel("output.xlsx", index=False, engine="openpyxl")
df_explode.to_excel("output_exploded.xlsx", index=False, engine="openpyxl")
print("\nExcel文件已保存!")
代码解析:
pd.json_normalize():pandas提供的“神器”,可自动展开JSON中的嵌套对象(如contact.email),生成扁平化表格。explode():将数组字段拆分为多行,适合“一对多”关系(如一个用户多个爱好)。to_excel():保存为Excel文件,index=False表示不保存行索引。
适用场景:
- 需要批量处理多个JSON文件;
- 需要对JSON数据进行预处理(如过滤、计算)后再导出;
- 自动化流程(如定时从API获取JSON并生成Excel报表)。
方法3:使用在线转换工具(无需编程,适合非技术人员)
如果不想安装工具或写代码,在线转换工具是便捷选择,推荐以下工具:
- ConvertJSON to Excel(https://convertio.co/json-excel/):支持拖拽上传JSON文件,自动生成Excel表格,免费且无需注册。
- JSON to Excel Converter(https://www.json-to-excel.com/):可处理大型JSON文件,支持自定义表头和格式。
操作步骤:
- 打开在线工具,上传JSON文件(或粘贴JSON文本)。
2



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