京公网安备 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规范化处理。熟练掌握两种转换方法,能够快速完成原始数据格式化预处理,为后续的数据清洗、统计分析、可视化建模、报表输出提供标准化的数据支撑。

随着新零售模式的快速普及,零售行业从传统的“货品驱动”全面转向“用户驱动”。门店交易数据、线上消费记录、浏览轨迹、复购频 ...
2026-08-27在数据分析、爬虫采集、接口开发、数据归档等场景中,JSON与CSV是两种使用率最高的数据存储格式。JSON为键值对结构化格式,适配 ...
2026-08-27 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-08-27在数据分析工作中,时间序列是最常见的数据类型之一,订单时间、日志时间、交易时段、统计周期等数据均离不开时间处理。原始数据 ...
2026-08-26在数据分析与数据预处理工作中,原始数据普遍存在录入错误、系统故障、偶然极值等问题,极易产生异常数据。异常数据会严重干扰数 ...
2026-08-26 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-08-26在数理统计与数据分析领域,多因素方差分析与线性回归模型是研究变量关系、因素影响、数据差异规律的两大核心工具。二者均属于经 ...
2026-08-25数据分析的核心价值不在于数据计算与图表制作,而在于清晰、精准、有逻辑地输出结论、支撑业务决策。日常数据分析报告普遍存在结 ...
2026-08-25 很多数据分析师能熟练地写SQL、做透视表、算描述性统计,但当被问到“如何预测用户流失概率”“如何归因销量下滑的关键因素 ...
2026-08-25平均数是数据分析、数理统计与日常运算中最基础、最常用的统计量,核心作用是浓缩一组数据的整体水平、刻画数据集中趋势。在众多 ...
2026-08-24在MySQL数据库中,InnoDB存储引擎作为主流事务型引擎,默认事务隔离级别为可重复读(Repeatable Read,RR),这与SQL Server、Or ...
2026-08-24 很多数据分析师拿到数据就开始清洗、建模,但当被问到“这批数据属于什么类型——结构化还是非结构化?分类变量还是数值变量 ...
2026-08-24 很多数据分析师画过趋势图、做过业绩预测,但当被问到“这个月销售额增长20%,到底是长期趋势自然增长,还是促销活动的短期 ...
2026-08-21在数据分析与数据可视化工作中,直方图是展示数据分布特征、离散程度、集中区间的核心图表,能够直观呈现数值数据的频次分布规律 ...
2026-08-20在数据分析领域有一句核心准则:垃圾数据进,垃圾数据出。数据清洗是数据分析、数据建模、数据可视化之前的必经前置工序,也是保 ...
2026-08-20 很多数据分析师做过按月份的销售额趋势图,画过按天的流量折线图,但当被问到“时间序列和普通数据有什么本质区别”“季节性 ...
2026-08-20在Python数据分析与数据清洗工作中,Pandas是最核心的数据处理库,DataFrame是结构化数据的标准存储格式。在实时数据采集、循环 ...
2026-08-19在零售行业大数据分析与精细化运营领域,纸尿裤旁摆放啤酒是最经典、最具代表性的商业案例。两种看似毫无关联的商品,一个是婴幼 ...
2026-08-19 很多数据分析师能熟练地计算指标、搭建标签体系,但当被问到“画像到底在解决什么问题”“画像和标签是什么关系”“画像如何 ...
2026-08-19在数据分析、业务监控、质量检测与风险管控工作中,数据波动性是衡量数据稳定性、业务健康度、结果可信度的核心依据。数据波动代 ...
2026-08-18