JSON格式数据轻松转换为Excel表格的实用指南
在数据处理和分析中,JSON(JavaScript Object Notation)和Excel是两种常用的数据格式,JSON以其轻量、易读的特性广泛用于API数据交换、配置文件存储等场景;而Excel则凭借强大的表格处理、公式计算和可视化功能,成为办公和数据管理的首选工具,将JSON数据转换为Excel表格,能让我们更直观地查看、编辑和分析数据,本文将详细介绍JSON格式转换为Excel的多种方法,涵盖手动操作、代码编程和工具辅助,助你轻松应对不同场景的需求。
JSON与Excel的基础认知
什么是JSON?
JSON是一种基于文本的数据交换格式,采用“键值对”(Key-Value)的方式组织数据,结构清晰,易于机器解析和生成,常见的数据类型包括对象(用表示,类似字典)、数组(用[]表示,类似列表)、字符串、数字、布尔值和null。
[
{"name": "张三", "age": 25, "city": "北京"},
{"name": "李四", "age": 30, "city": "上海"},
{"name": "王五", "age": 28, "city": "广州"}
]
这是一个典型的JSON数组,每个元素是一个包含“姓名、年龄、城市”键值对的对象。
为什么需要转换为Excel?
- 直观性:Excel以表格形式展示数据,行列结构清晰,比JSON更易人工阅读。
- 功能性:Excel支持排序、筛选、公式计算、数据透视表等操作,便于深度分析。
- 兼容性:Excel是办公软件通用格式,便于与他人共享和协作。
JSON转Excel的常用方法
根据JSON数据的复杂程度、转换量级和操作习惯,可选择以下三种主流方法:手动复制粘贴(适合小数据量)、代码编程(适合批量/自动化处理)、在线工具或软件(适合无代码需求)。
方法1:手动复制粘贴(最简单,适合小数据量)
如果JSON数据结构简单(如上述示例的二维数组),且数据量较小(几十行以内),可直接通过复制粘贴实现转换。
操作步骤:
- 准备JSON数据:确保JSON是“表格友好”的结构——即最外层是数组,每个元素是对象,且所有对象的键(字段名)一致。
- 复制JSON数据:选中JSON文本,按
Ctrl+C复制。 - 粘贴到Excel:打开Excel,选中目标单元格(如A1),按
Ctrl+V,Excel会自动识别JSON结构,将其转换为表格:- 第一行显示字段名(name、age、city);
- 后续行对应各条数据的值(张三、25、北京等)。
注意事项:
- 若JSON结构复杂(如嵌套对象或数组),直接粘贴可能导致数据错乱。
{"name": "张三", "info": {"age": 25, "city": "北京"}}粘贴后,“info”字段会以文本形式显示整个对象,无法直接拆分为“age”和“city”列。
- 此方法仅适合简单JSON,大数据量或重复操作时效率低下。
方法2:代码编程(灵活高效,适合批量/自动化处理)
对于复杂数据结构、大规模数据或需要定期转换的场景,使用代码编程是最优选择,Python凭借其强大的数据处理库(如pandas、openpyxl),成为JSON转Excel的首选语言。
准备工作:安装Python库
打开命令行工具(如Windows的CMD或Mac的Terminal),运行以下命令安装所需库:
pip install pandas openpyxl
pandas:用于处理JSON数据并生成DataFrame(表格结构);openpyxl:用于将DataFrame写入Excel文件(.xlsx格式)。
示例代码:将JSON文件转换为Excel
假设有一个名为data.json的文件,内容如下:
[
{"id": 1, "product": "手机", "price": 2999, "specs": {"color": "黑色", "storage": "128GB"}},
{"id": 2, "product": "电脑", "price": 5999, "specs": {"color": "白色", "storage": "256GB"}},
{"id": 3, "product": "平板", "price": 1999, "specs": {"color": "银色", "storage": "64GB"}}
]
步骤1:读取JSON数据
使用pandas的read_json()方法直接读取JSON文件:
import pandas as pd
# 读取JSON文件(支持本地文件路径或URL)
df = pd.read_json('data.json')
print(df)
运行后,df(DataFrame)的结构如下:
id product price specs
0 1 手机 2999 {'color': '黑色', 'storage': '128GB'}
1 2 电脑 5999 {'color': '白色', 'storage': '256GB'}
2 3 平板 1999 {'color': '银色', 'storage': '64GB'}
步骤2:处理嵌套数据(可选)
如果JSON包含嵌套对象(如“specs”字段),需先将其拆分为独立列,否则Excel中会以文本显示嵌套结构,使用pandas的json_normalize()方法:
from pandas import json_normalize # 嵌套字段处理:假设主数据在'data'键下(若JSON直接是数组,无需此步) # 本例中JSON直接是数组,直接对'df'的'specs'列展开 df_normalized = json_normalize(df) print(df_normalized)
处理后,df_normalized的结构变为:
id product price color storage
0 1 手机 2999 黑色 128GB
1 2 电脑 5999 白色 256GB
2 3 平板 1999 银色 64GB
步骤3:写入Excel文件
使用pandas的to_excel()方法将DataFrame保存为Excel:
# 写入Excel,index=False表示不保存行索引(Excel默认的0,1,2...)
df_normalized.to_excel('output.xlsx', index=False, engine='openpyxl')
执行后,当前目录会生成output.xlsx如下:
| id | product | price | color | storage |
|---|---|---|---|---|
| 1 | 手机 | 2999 | 黑色 | 128GB |
| 2 | 电脑 | 5999 | 白色 | 256GB |
| 3 | 平板 | 1999 | 银色 | 64GB |
进阶技巧:处理复杂JSON(如多层嵌套或数组)
如果JSON包含多层嵌套或数组字段(如“specs”中还有数组),需结合json_normalize()的record_path和meta参数处理。
[
{"id": 1, "product": "手机", "specs": [{"color": "黑色", "storage": "128GB"}, {"color": "白色", "storage": "256GB"}]},
{"id": 2, "product": "电脑", "specs": [{"color": "白色", "storage": "512GB"}]}
]
处理代码:
df = pd.read_json('complex_data.json')
# record_path:展开数组字段(specs),meta:保留外层字段(id, product)
df_normalized = json_normalize(df, record_path=['specs'], meta=['id', 'product'])
print(df_normalized)
结果:
color storage id product
0 黑色 128GB 1 手机
1 白色 256GB 1 手机
2 白色 512GB 2 电脑
方法3:在线工具或软件(无需编程,适合临时需求)
如果不熟悉编程,或仅需偶尔转换少量JSON数据,可使用在线转换工具或桌面软件,操作简单且无需安装依赖。
推荐在线工具:
-
ConvertJSON(https://www.convertjson.com/json-to-excel.htm)
- 支持直接粘贴JSON文本或上传JSON文件;
- 自动识别JSON结构,转换为Excel表格;
- 可选择下载
.xlsx或.csv格式。
-
JSON to Excel Converter(https://www.browserling.com/tools/json-to-xlsx)
- 支持批量转换(多个JSON文件);
- 提供预览功能,确认无误后下载。
操作步骤(以ConvertJSON为例):
打开



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