在数据处理和分析过程中,经常需要将Excel文件转换为JSON格式,以便在Web应用程序中使用。本文介绍如何使用Python的Pandas库实现这一功能,并解释其中的关键函数。
代码示例
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’表示每一行数据将作为一个字典存储在列表中。例如:
[{'列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数据写入文件。