用python实现将json数据转换为excel
最近工作上遇到个问题,用postman查询数据,得到的响应数据是json格式的,查看的时候非常不方便,于是想要写个小工具用程序把json文件转换为excel文件。
·
背景
最近工作上遇到个问题,用postman查询数据,得到的响应数据是json格式的,
查看的时候非常不方便,于是想要写个小工具用程序把json文件转换为excel文件
查阅资料
python中的pandas库正好可以实现这个功能,以下是具体实现步骤:
1、在cmd中用pip安装pandas库
# 安装pandas库,用清华源安装会下载的快很多
pip insatll pandas -i https://pypi.tuna.tsinghua,edu,cn/simple
使用pip show pandas查看是否安装成功,如下图就是安装成功了
pip show pandas
2、接下来就是用python代码简单实现
test_data.json文件如下:
{
"code" : "00000",
"msg" : "success",
"timestamp" : 1722655966232,
"data" : [
{
"title" : "你好",
"time" : "2024-07-19 15:34:36.000"
}
]
}
case.py如下:
# 导入模块
import pandas as pd
import json
# 定义文件路径(根据需要可以用导入tkinter模块弹出窗口自由选择文件)
file_path = 'E:/PycharmProjects/to_Excel/test_data1.json'
# 读取json文件并转换为Dataframe
data = pd.read_json(file_path)
# 将Dataframe转换为excel文件
data.to_excel('output.xlsx', index=False)
看看效果:
pandas.to_excel()函数中,index参数默认值为True,
记得一定要定义index=False,否则就会输出每一行的行号,如下图:
如果是比较复杂的json结构(多层嵌套),如上述test_data.json文件中,还嵌套着一层字典,像这样:
{
"code" : "00000",
"msg" : "success",
"timestamp" : 1722655966232,
"data" : [
{
"title" : "你好",
"time" : "2024-07-19 15:34:36.000"
},
{
"title" : "你好",
"time" : "2024-07-19 15:33:36.000"
}
]
}
我们就需要根据数据结构来具体做判断,像上述结构,如果需求是只想将title和time两个字段分别做一列输出,可以这样实现:
# 用json_load方法加载文件
with open(file_path, 'r', encoding='utf-8') as file:
data_frame = json.load(file)
print(data_frame['data'])
# 字典推导式来将data里的数据列出
items = [{**item} for item in data_frame['data']]
print(items)
df = pd.DataFrame(items)
excel_file_path = 'E:/PycharmProjects/to_Excel/test_data1.xlsx'
if excel_file_path:
df.to_excel(excel_file_path, index=False)
else:
print('转换失败')
效果如下:
具体问题具体分析,如果有什么疑问,可以评论私信一起讨论~

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)