JSON数据轻松转Excel:实用整理方法全解析
在数据处理工作中,我们常常会遇到需要将JSON格式的数据整理成Excel表格的场景,无论是API返回的接口数据、系统导出的配置文件,还是爬虫抓取的结构化信息,JSON的灵活性与Excel的可视化分析能力各有优势,将两者结合能让数据更易读、更易用,JSON数据到底怎么整理成Excel呢?本文将从基础方法到进阶技巧,为你详细拆解全流程。
理解JSON与Excel的核心差异:整理前先“看懂”数据
在动手转换前,我们需要先明确JSON与Excel的数据结构差异,这直接影响整理逻辑:
-
JSON:采用“键值对”存储数据,支持嵌套结构(如对象内嵌套数组、数组内嵌套对象),格式灵活但可读性较差(尤其数据量大时)。
示例JSON:[ {"id": 1, "name": "张三", "hobbies": ["篮球", "阅读"], "contact": {"email": "zhangsan@example.com", "phone": "13800138000"}}, {"id": 2, "name": "李四", "hobbies": ["游泳", "游戏"], "contact": {"email": "lisi@example.com", "phone": "13900139000"}} ] -
Excel:以“二维表格”为核心,数据按“行(记录)+列(字段)”排列,每列需有明确的列名,不支持复杂嵌套(需通过拆分列实现)。
核心目标:将JSON的“嵌套键值对”或“数组结构”,转换为Excel的“平铺行列结构”,上述JSON中的hobbies数组需拆分为多列,contact对象内的键需作为新列。
基础方法:小数据量手动整理(适合临时处理)
如果JSON数据量较小(如几十条记录),或结构简单,可以通过“复制粘贴+手动调整”快速完成,无需依赖工具。
操作步骤:
- 复制JSON数据:从文本文件、API响应或代码中复制JSON内容。
- 粘贴到文本编辑器:用记事本、VS Code等工具打开,确保格式清晰(可通过“格式化JSON”功能整理缩进)。
- 提取键作为Excel列名:观察JSON结构,确定所有“一级键”(如
id、name)和“嵌套键”(如contact.email、contact.phone),作为Excel的列标题。- 示例中,列名可设为:
id、name、hobbies_0(第一个爱好)、hobbies_1(第二个爱好)、contact_email、contact_phone。
- 示例中,列名可设为:
- 逐行填充数据:根据JSON的每个对象(),按列名对应填充值。
- 示例中,第一条记录的
hobbies是["篮球", "阅读"],则hobbies_0填“篮球”,hobbies_1填“阅读”;contact.email是“zhangsan@example.com”,则contact_email填该值。
- 示例中,第一条记录的
- 调整格式:设置列宽、居中对齐、合并单元格(若有),完成基础整理。
优缺点:
- 优点:无需工具,灵活可控,适合一次性、小量数据。
- 缺点:效率低,易出错(尤其嵌套复杂时),数据量大时不可行。
进阶方法:借助工具自动化转换(高效推荐)
当数据量较大(如几百条以上)或结构复杂时,手动整理效率太低,推荐使用工具自动化处理,以下是3类常用工具及操作指南:
方法1:Excel自带功能(适合JSON结构简单)
Excel 2016及以上版本支持直接导入JSON数据,适合结构较平缓(无深层嵌套)的JSON文件。
操作步骤:
- 准备JSON文件:将JSON数据保存为
.json文件(如data.json)。 - 打开Excel → 数据选项卡:点击“获取数据”→ “从文件”→ “从JSON”。
- 选择JSON文件并加载:在弹出的窗口中选择文件,点击“导入”→ “加载”(直接加载到工作表)或“转换数据”(进入Power Query编辑器,可进一步清洗数据)。
- 处理嵌套数据(若有):
- 若JSON包含嵌套对象(如
contact),Power Query会默认将其展开为“记录”格式,右键点击该列→ “展开”→ 勾选需要提取的字段(如email、phone),点击“确定”。 - 若JSON包含数组(如
hobbies),同样右键点击数组列→ “展开”→ 选择“展开到新行”(每个元素作为独立行)或“展开到新列”(每个元素作为独立列,需指定分隔符或索引)。
- 若JSON包含嵌套对象(如
- 关闭并加载:调整好数据结构后,点击“关闭并加载”,数据将自动导入Excel工作表。
注意事项:
- 若JSON是“数组嵌套对象”(如本文开头的示例),Excel会自动识别为数组结构,需手动展开嵌套字段。
- 若JSON结构复杂(如多层嵌套数组),可能需在Power Query中多次使用“展开”功能,耐心调整。
方法2:在线转换工具(适合无Excel或快速处理)
如果你没有安装Excel,或需要快速转换小量数据,可以使用在线JSON转Excel工具,操作简单快捷。
常用工具:
- Convertio(https://convertio.co/zh/json-xls/)
- JSON to Excel Converter(https://www.json-to-excel.com/)
- 小工具在线(https://www.aconvert.com/cn/json/to-excel/)
操作步骤(以Convertio为例):
- 打开网站:访问Convertio,选择“JSON转Excel”功能。
- 上传JSON文件:点击“选择文件”,上传本地
.json文件;或直接粘贴JSON文本(部分工具支持)。 - 设置转换选项:
- 选择“展开嵌套对象/数组”(部分工具需手动勾选,确保数据平铺)。
- 若需指定列名,可提前在工具中设置(如将
contact.email映射为“邮箱”)。
- 开始转换并下载:点击“转换”,等待完成后自动下载Excel文件(
.xlsx格式)。
优缺点:
- 优点:无需安装软件,操作简单,适合临时应急。
- 缺点:数据安全性需注意(避免上传敏感信息),部分工具对大数据量或复杂嵌套支持有限,可能有广告干扰。
方法3:编程处理(适合批量、复杂或定制化需求)
如果你需要处理大量数据(如上万条)、JSON结构复杂,或有定制化整理需求(如过滤字段、计算衍生列),编程是最高效的方式,Python是首选语言,借助pandas和json库,几行代码即可完成转换。
准备工作:
安装Python环境(推荐Anaconda),并安装所需库:
pip install pandas openpyxl
代码实现(以嵌套JSON为例):
假设我们有如下JSON文件data.json(同本文开头的示例),目标是将其转换为平铺的Excel表格,包含id、name、hobby_1、hobby_2、email、phone列。
import json
import pandas as pd
# 1. 读取JSON文件
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f) # data是列表,每个元素是一个字典(JSON对象)
# 2. 使用pandas的json_normalize函数处理嵌套数据
# json_normalize专门用于将嵌套JSON转为DataFrame,支持“记录路径”和“数组路径”
df = pd.json_normalize(
data,
record_path=None, # 顶层是列表,无需指定
meta=['id', 'name'], # 提取一级字段id和name
record_prefix='hobby_', # 数组字段的前缀(避免列名冲突)
max_level=1 # 最大展开层级(防止过度展开)
)
# 3. 手动处理数组字段(hobbies是列表,需拆分为多列)
# 假设每个对象的hobbies数组最多2个元素(不足的填充空值)
hobbies_df = pd.DataFrame(df['hobbies'].tolist(), columns=['hobby_1', 'hobby_2'])
df = pd.concat([df.drop('hobbies', axis=1), hobbies_df], axis=1)
# 4. 处理嵌套对象字段(contact是字典,需拆分为多列)
contact_df = pd.DataFrame(df['contact'].tolist(), columns=['email', '


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