[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数据写入文件。

相关推荐
IVEN_14 小时前
只会Python皮毛?深入理解这几点,轻松进阶全栈开发
python·全栈
Ray Liang15 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
AI攻城狮15 小时前
如何给 AI Agent 做"断舍离":OpenClaw Session 自动清理实践
python
千寻girling15 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
AI攻城狮18 小时前
用 Playwright 实现博客一键发布到稀土掘金
python·自动化运维
曲幽19 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
孟健1 天前
Karpathy 用 200 行纯 Python 从零实现 GPT:代码逐行解析
python
码路飞1 天前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽2 天前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers