我来为您讲解一下“Python3循环读取Excel文件并写入JSON操作”的完整实例教程。
简介
在实际开发中,我们经常需要将Excel表格中的数据转换为JSON格式,以便于在Web开发中进行使用。本文就是介绍如何使用Python3语言循环读取Excel文件,并将其转换为JSON格式进行保存。
前置准备
在开始实现这个操作之前,我们需要先安装三个Python库:
openpyxl
:用于读取Excel文件pandas
:用于将Excel文件转换为DataFrame格式json
: 用于将DataFrame格式的数据转换为JSON格式
安装方法:
pip install openpyxl pandas json
实现过程
下面,我们来详细介绍具体的实现过程。
1. 导入Python库
在Python程序中,我们需要先导入三个库:openpyxl
、pandas
和json
。
import openpyxl
import pandas as pd
import json
2. 读取Excel文件
我们可以使用openpyxl
库中的load_workbook()
函数来读取Excel文件,然后使用Sheetnames
属性来获取Excel文件中的所有Sheet,最后可以使用get_sheet_by_name()
方法来获取指定的Sheet。
wb = openpyxl.load_workbook('example.xlsx')
sheet_names = wb.sheetnames
ws = wb.get_sheet_by_name(sheet_names[0])
3. 将Excel文件转换为DataFrame
使用pandas
库的read_excel()
函数可以很容易地将Excel文件转换为DataFrame格式。
df = pd.read_excel('example.xlsx', sheet_name=sheet_names[0])
4. 将DataFrame格式的数据转换为JSON格式并写入文件
使用to_json()
函数可以将DataFrame格式的数据转换为JSON格式,默认情况下,转换结果是压缩格式的。如果需要化地转换出含有缩进、换行符等格式的JSON,可以使用to_json()
函数中的pretty_print
参数。
json_string = df.to_json(orient='records', pretty_print=True)
with open('example.json', mode='w', encoding='utf-8') as json_file:
json_file.write(json_string)
5. 完整代码
import openpyxl
import pandas as pd
import json
wb = openpyxl.load_workbook('example.xlsx')
sheet_names = wb.sheetnames
ws = wb.get_sheet_by_name(sheet_names[0])
df = pd.read_excel('example.xlsx', sheet_name=sheet_names[0])
json_string = df.to_json(orient='records', pretty_print=True)
with open('example.json', mode='w', encoding='utf-8') as json_file:
json_file.write(json_string)
6. 示例说明
下面,我来举两个操作实例进行说明:
示例1:写入的JSON文件多行插入制表符
当我们写入的JSON文件中有多行数据时,使用默认的写入方式会将所有的数据写入到同一行中。为了让JSON文件看起来更加清晰,我们可以使用json.dump()
写入文件,并指定indent
参数使其插入制表符,从而美化输出。
import openpyxl
import pandas as pd
import json
wb = openpyxl.load_workbook('example.xlsx')
sheet_names = wb.sheetnames
ws = wb.get_sheet_by_name(sheet_names[0])
df = pd.read_excel('example.xlsx', sheet_name=sheet_names[0])
json_list = json.loads(df.to_json(orient='records'))
with open('example.json', mode='w', encoding='utf-8') as json_file:
json.dump(json_list, json_file, indent=2)
示例2:忽略空值的列
有时候我们的Excel表格中会存在部分空值的列,而这些空值会被转换为JSON格式中的null
值。为了让转换后的JSON文件更加干净美观,我们可以在转换过程中进行空值的过滤,只保留非空的列。
import openpyxl
import pandas as pd
import numpy as np
import json
wb = openpyxl.load_workbook('example.xlsx')
sheet_names = wb.sheetnames
ws = wb.get_sheet_by_name(sheet_names[0])
df = pd.read_excel('example.xlsx', sheet_name=sheet_names[0])
df = df.replace({np.nan: None})
df = df.dropna(axis='columns', how='all')
json_string = df.to_json(orient='records', null_handler=lambda x: None, pretty_print=True)
with open('example.json', mode='w', encoding='utf-8') as json_file:
json_file.write(json_string)
总结
通过以上的介绍和实现,我们即可使用Python3来循环读取Excel文件,并将其转换为JSON格式进行保存。同时,我们还可以进行美化输出、特殊数据处理等多方面的操作,让数据格式更加美观和规范。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3 循环读取excel文件并写入json操作 - Python技术站