[python]使用Pandas将Excel文件转换为JSON格式

在数据处理和分析过程中,经常需要将Excel文件转换为JSON格式,以便在Web应用程序中使用。本文介绍如何使用Python的Pandas库实现这一功能,并解释其中的关键函数。

代码示例

python 复制代码
import pandas as pd
import json

def excel_to_json(excel_file):
    # 读取Excel文件
    xls = pd.ExcelFile(excel_file)
    
    # 创建一个空字典存储每个Sheet的数据
    excel_data = {}
    
    # 遍历每个Sheet
    for sheet_name in xls.sheet_names:
        # 读取Sheet内容为DataFrame
        df = pd.read_excel(excel_file, sheet_name=sheet_name)
        
        # 将DataFrame转换为字典格式
        data_dict = df.to_dict(orient='records')
        
        # 将数据存入字典,以Sheet名为键
        excel_data[sheet_name] = data_dict
    
    # 将字典转换为JSON字符串
    json_data = json.dumps(excel_data, indent=4, ensure_ascii=False)
    
    return json_data


# 使用示例
excel_file_path = '表格数据.xlsx'
json_output = excel_to_json(excel_file_path)
print(json_output)

# 如果需要保存为文件,可以使用以下代码:
with open('output.json', 'w', encoding='utf-8') as f:
    f.write(json_output)

代码解析

导入必要的库:

import pandas as pd

import json

定义excel_to_json函数:

读取Excel文件并获取所有Sheet的名称。

创建一个空字典来存储每个Sheet的数据。

遍历每个Sheet,将其内容读取为DataFrame,并转换为字典格式。

将每个Sheet的数据存入字典中,以Sheet名为键。

最后,将字典转换为JSON字符串并返回。

关键函数解释:

df.to_dict(orient='records'):

这个函数将Pandas DataFrame转换为字典格式。参数orient='records'表示每一行数据将作为一个字典存储在列表中。例如:

python 复制代码
[{'列1': 值1, '列2': 值2}, {'列1': 值3, '列2': 值4}]

json.dumps(excel_data, indent=4, ensure_ascii=False):这个函数将Python字典转换为JSON字符串。参数indent=4用于美化输出,使JSON字符串更易读;ensure_ascii=False确保输出的JSON字符串中包含非ASCII字符(如中文)时不会被转义。

指定Excel文件路径并调用excel_to_json函数。

打印生成的JSON数据。

如果需要保存为文件,可以使用with open语句将JSON数据写入文件。

相关推荐
谷粒.2 小时前
Cypress vs Playwright vs Selenium:现代Web自动化测试框架深度评测
java·前端·网络·人工智能·python·selenium·测试工具
小糖学代码8 小时前
LLM系列:1.python入门:3.布尔型对象
linux·开发语言·python
Data_agent9 小时前
1688获得1688店铺详情API,python请求示例
开发语言·爬虫·python
Maxwell_li19 小时前
Pandas 描述分析和分组分析学习文档
学习·数据分析·numpy·pandas·matplotlib
周杰伦fans10 小时前
pycharm之gitignore设置
开发语言·python·pycharm
weixin_4624462310 小时前
【原创实践】python 获取节假日列表 并保存为excel
数据库·python·excel
计算机毕设匠心工作室10 小时前
【python大数据毕设实战】全球大学排名数据可视化分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习、实战教学
后端·python·mysql
别叫我->学废了->lol在线等10 小时前
演示 hasattr 和 ** 解包操作符
开发语言·前端·python
free-elcmacom11 小时前
机器学习入门<6>BP神经网络揭秘:从自行车摔跤到吃一堑长一智的AI智慧
人工智能·python·深度学习·神经网络·机器学习
Hi2024021711 小时前
如何录制浏览器播放的音频?虚拟音频线与Python采集步骤
python·音视频