京公网安备 11010802034615号
经营许可证编号:京B2-20210330
在数据分析、爬虫采集、接口开发、数据归档等场景中,JSON与CSV是两种使用率最高的数据存储格式。JSON为键值对结构化格式,适配程序读取、嵌套数据存储,灵活性强但可读性差、不便于表格统计;CSV为纯文本表格格式,结构规整、兼容Excel、易于可视化分析与数据清洗。日常工作中,大量原始数据以JSON文件形式存储,需要转换为CSV格式用于后续数据分析、报表制作与数据复盘。Python凭借丰富的标准库与第三方工具,提供了轻量化、高效、可自动化的JSON转CSV方案。本文将对比两种文件格式差异,讲解两种主流转换方法、完整实操流程、适用场景与常见报错解决方案。
JSON(JavaScript Object Notation)是轻量级数据交换格式,支持单层、多层嵌套结构,可存储对象、数组、字符串、数值等多类型数据,兼容性强,是程序交互、接口返回、爬虫数据的主流存储格式。但其非规整表格结构,无法直接用于Excel查看、数据筛选、分组统计。
CSV(逗号分隔值)是标准结构化表格格式,以逗号分隔字段、以行为单位存储数据,自带表头与行列结构,完全适配Excel、Pandas、各类数据分析工具,是数据清洗、统计分析、可视化的通用格式。缺点是不支持多层嵌套复杂数据,仅适合扁平化结构化数据存储。
JSON转CSV是数据预处理的高频操作,核心价值在于数据结构化落地。将程序生成的非标准JSON数据,转化为标准表格数据,实现数据可视化查看、批量清洗、统计建模、报表输出,打通原始数据采集到数据分析的完整链路。
Python实现JSON转CSV分为两种核心方案,适配不同数据场景:第一种是Python标准库方案,依托内置json、csv库,无需安装第三方依赖,轻量化、零成本,适合单层简单JSON数据;第二种是Pandas库方案,代码简洁、功能强大,支持嵌套JSON自动展开、批量转换、大数据处理,是数据分析场景的首选方案。
该方案使用Python内置的json和csv标准库,无需额外安装插件,适配结构简单、无嵌套、数组格式的标准JSON文件,适合轻量化快速转换场景。
import json
import csv
# 1. 读取本地JSON文件
with open("data.json", "r", encoding="utf-8") as f:
data = json.load(f)
# 2. 获取表头(字典键名)
headers = data[0].keys() if data else []
# 3. 写入CSV文件
with open("output1.csv", "w", newline="", encoding="utf-8-sig") as f:
writer = csv.DictWriter(f, fieldnames=headers)
writer.writeheader() # 写入表头
writer.writerows(data) # 批量写入多行数据
print("标准库转换完成,文件已生成!")
首先通过json.load()读取本地JSON文件,将JSON数组转换为Python字典列表;其次提取字典键名作为CSV表头;最后通过csv.DictWriter创建写入对象,批量写入表头与行数据,完成格式转换。代码轻量化、运行速度快,无第三方依赖,适合简单扁平化JSON数据。
适用于单层、无嵌套、标准数组格式JSON;无法自动解析多层嵌套JSON,嵌套数据会直接写入字段,导致CSV格式错乱,不适合复杂数据场景。
Pandas是数据分析专用库,提供了read_json()与json_normalize()方法,不仅可以快速转换单层JSON,还能自动扁平化嵌套JSON数据,代码极简、容错性高、适配绝大多数业务场景,是工业级首选方案。
首次使用需安装依赖:pip install pandas
import pandas as pd
# 读取JSON并直接转为CSV
df = pd.read_json("data.json")
df.to_csv("output2.csv", index=False, encoding="utf-8-sig")
print("Pandas简单转换完成!")
针对多层嵌套的复杂JSON,使用json_normalize()自动展开嵌套字段,将复杂结构扁平化,完美适配接口数据、爬虫复杂JSON场景。
import pandas as pd
import json
# 读取嵌套JSON数据
with open("nested_data.json", "r", encoding="utf-8") as f:
data = json.load(f)
# 自动扁平化嵌套结构
df = pd.json_normalize(data)
# 导出为CSV,取消索引、保留中文编码
df.to_csv("nested_output.csv", index=False, encoding="utf-8-sig")
print("嵌套JSON转换完成!")
index=False:不导出行索引,保证CSV文件整洁;encoding="utf-8-sig":解决中文乱码问题;json_normalize():Pandas专属嵌套数据扁平化函数,是区别于标准库的核心优势。
优势:零依赖、轻量化、启动快、无环境配置成本;劣势:不支持嵌套数据、功能单一、容错性弱;适用场景:简单单层JSON、临时快速转换、轻量化脚本部署。
优势:支持嵌套数据自动展开、代码简洁、容错性强、支持大数据量、可搭配数据清洗操作;劣势:需安装第三方依赖;适用场景:数据分析预处理、复杂JSON转换、批量自动化处理、爬虫与接口数据归档。
默认编码导出会出现中文乱码,统一使用encoding="utf-8-sig"编码格式,可彻底解决中文兼容问题。
标准库无法解析嵌套数据,复杂JSON必须使用pd.json_normalize()扁平化处理,避免数据挤压、字段错乱。
原始JSON存在语法错误、多余逗号、乱码时会读取失败,需提前校验JSON格式,清洗无效字符后再转换。
Pandas默认导出行索引,添加index=False参数,关闭索引导出,保证CSV为纯净表格结构。
利用Python实现JSON转CSV是数据分析入门的核心实操技能,能够高效完成非结构化数据到结构化表格数据的转换。Python提供的标准库零依赖方案适合简单单层数据快速转换,而Pandas方案凭借嵌套解析、自动扁平化、高容错、易扩展的优势,成为复杂业务场景的通用最优解。
在实际工作中,可根据JSON数据结构灵活选型:简单数据用标准库轻量化转换,复杂嵌套、批量数据统一使用Pandas规范化处理。熟练掌握两种转换方法,能够快速完成原始数据格式化预处理,为后续的数据清洗、统计分析、可视化建模、报表输出提供标准化的数据支撑。

数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在统计学与数据分析研究中,相关性分析分为数值变量分析与分类变量分析两大类。针对身高、销量、分数等连续数值变量,通常采用皮 ...
2026-10-12在Power BI可视化分析体系中,常规表格仅能展示枯燥的数值数据,存在数据对比不直观、强弱规律不突出、维度交叉分析低效等问题。 ...
2026-10-12 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-10-12在传统零售行业同质化竞争激烈、大众营销转化率持续走低的背景下,依托经验与直觉的粗放式营销逐渐失效。美国塔吉特百货(Target ...
2026-10-10随着智能客服、数字化服务、用户精细化运营的快速普及,传统零散、非标准化的客户服务数据与业务体系逐渐难以支撑高效服务治理。 ...
2026-10-10 很多数据分析师能熟练地写SQL、做透视表、算描述性统计,但当被问到“如何预测用户流失概率”“如何归因销量下滑的关键因素 ...
2026-10-10CDA数据分析师 出品 作者:李诗怡 定义区别 · 场景举例 · 指标分类 · 计算方法 知识体系总览 模块 包含内容 一、核 ...
2026-10-09在数据分析工作流中,业务数据大多存储在各类关系型数据库内,例如MySQL、PostgreSQL、SQLite等。Pandas是Python生态中主流的数 ...
2026-10-09在数字化精细化运营时代,海量用户存在需求差异、行为差异、价值差异与偏好差异。如果企业采用“一刀切”的统一营销、统一服务、 ...
2026-10-09 很多数据分析师拿到数据就开始清洗、建模,但当被问到“这批数据属于什么类型——结构化还是非结构化?分类变量还是数值变量 ...
2026-10-09指标体系是企业数字化分析、业务监控、经营决策的核心基础框架,是将零散数据转化为可衡量、可对比、可落地业务价值的关键体系。 ...
2026-10-08随着市场竞争日趋饱和,同质化低价竞争逐渐陷入内卷僵局,传统以价格、渠道、促销为核心的营销模式边际效益持续递减。在此背景下 ...
2026-10-08 很多数据分析师画过趋势图、做过业绩预测,但当被问到“这个月销售额增长20%,到底是长期趋势自然增长,还是促销活动的短期 ...
2026-10-08你有没有想过,手机里点外卖、刷社交软件、转一笔账,背后到底是谁在替你"记着账"? 答案其实很简单:数据库,以及跟它对话的那 ...
2026-10-07CDA数据分析师 出品 作者:李诗怡 一、数据分析四大思维 1. 对比思维:没有对比就没有分析 核心观点:单独一个数字没有意义,有 ...
2026-10-05Kimball 是方法,星型模型是它产出的形状。 很多人把"Kimball vs 星型模型"当成一道选择题——这本身就是个误会:Kimball 是动词 ...
2026-10-05写在开头 老板在微信上甩来一句: "帮我看下为什么销量跌了。" ” 你回工位,打开 SQL,开始写。查订单表、拉近三个月、按 ...
2026-10-03CDA数据分析师 出品 作者:李诗怡 1. 事实表 vs 维度表 对比维度 事实表 维度表 核心问题 记录“业务发生了什么事” 描述 ...
2026-10-02做数据聚合时,PySpark的groupBy()确实能完成统计,这也是它的本职工作。但它有一个根本性局限:每一组数据,最终只能返回一行 ...
2026-10-01热力地图是数据可视化中极具辨识度与实用性的空间分析图表,结合地理空间维度与数据密度特征,通过颜色深浅、色阶渐变直观展示数 ...
2026-09-30