python3 循环读取excel文件并写入json操作

1. 介绍

在日常的数据处理中,常常需要将数据从Excel文件中读取出来,并转换成其他格式进行分析或存储。Python中提供了多种库可以用于操作Excel文件,如openpyxl、xlrd等。

本文将使用Python3的openpyxl库来实现循环读取Excel文件,并将数据写入json文件的操作。我们将以一个实际的例子来演示这个过程,希望能够帮助读者更好地理解和应用相关的知识。

2. 准备工作

2.1 安装openpyxl库

在开始之前,我们需要先安装openpyxl库。可以使用pip命令来进行安装:

pip install openpyxl

安装完成后,我们就可以在Python中导入该库并使用相关的功能。

2.2 准备Excel文件

为了演示方便,我们先准备一个包含了一些数据的Excel文件。可以使用Excel软件创建一个文件,并在其中填写一些数据,然后保存为xlsx格式的文件。

3. 读取Excel文件

3.1 导入所需库

首先,我们需要导入openpyxl库来调用相关的功能。同时,我们还需要导入json库,用于将数据转换成json格式。

import openpyxl

import json

3.2 打开Excel文件

使用openpyxl库的load_workbook()函数可以打开一个Excel文件,并返回一个Workbook对象。我们可以将该对象保存在一个变量中以便后续使用。

excel_path = 'example.xlsx'

workbook = openpyxl.load_workbook(excel_path)

上述代码中,example.xlsx是我们准备的Excel文件的文件名。如果文件不在当前目录下,需要提供文件的完整路径。

3.3 选择工作表

在Excel文件中可以包含多个工作表,我们需要选择其中的一个工作表进行操作。可以通过workbook.sheetnames属性得到所有工作表的名称,并选择一个工作表进行操作。

sheet_name = workbook.sheetnames[0]

worksheet = workbook[sheet_name]

上述代码中,我们选择了第一个工作表进行操作。如果需要选择其他工作表,可以根据实际情况修改索引。

3.4 循环读取数据

接下来,我们需要循环读取工作表中的数据,并将其存储到一个字典中。可以通过worksheet.iter_rows()方法来遍历所有行,并逐行读取数据。

data = []

for row in worksheet.iter_rows(values_only=True):

item = {

'name': row[0],

'age': row[1],

'gender': row[2]

}

data.append(item)

上述代码中,我们使用values_only=True参数来仅获取单元格的值,而不包含其他信息。每一行的数据存储在一个字典中,并将字典添加到data列表中。

4. 写入json文件

4.1 转换数据格式

在将数据写入json文件之前,我们需要将数据转换成json格式。可以使用json.dumps()函数来实现这个功能。

json_data = json.dumps(data, indent=4)

上述代码中,data是上一步读取Excel文件得到的数据,indent=4参数表示输出格式为带缩进的形式。

4.2 写入json文件

最后,我们将数据写入json文件中。可以使用open()函数打开一个文件,并使用write()方法将数据写入文件。

json_path = 'data.json'

with open(json_path, 'w') as file:

file.write(json_data)

上述代码中,data.json是存储目标数据的json文件的文件名。如果文件不在当前目录下,需要提供文件的完整路径。

5. 完整代码示例

import openpyxl

import json

excel_path = 'example.xlsx'

json_path = 'data.json'

workbook = openpyxl.load_workbook(excel_path)

sheet_name = workbook.sheetnames[0]

worksheet = workbook[sheet_name]

data = []

for row in worksheet.iter_rows(values_only=True):

item = {

'name': row[0],

'age': row[1],

'gender': row[2]

}

data.append(item)

json_data = json.dumps(data, indent=4)

with open(json_path, 'w') as file:

file.write(json_data)

6. 结语

本文介绍了如何使用Python3的openpyxl库循环读取Excel文件,并将数据写入json文件的操作。通过一个具体的例子,我们演示了整个过程的实现步骤,并给出了相应的代码示例。

通过学习和实践,读者可以掌握这一常用的数据处理技巧,并在实际应用中快速地处理和转换数据。希望本文对读者有所帮助。

后端开发标签