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

  • Post category:Python

以下是“python3循环读取excel文件并写入json操作”的完整实例教程。

简介

有时候我们需要从Excel文件中获取数据并将其转换为JSON格式,这时可以使用Python3的pandas和json库来实现。

实现过程

首先,需要安装pandas和json库。使用以下命令可以安装它们:

pip install pandas
pip install json

接下来,我们需要创建一个Excel文件,文件名为example.xlsx,并在其中创建一个名为Sheet1的工作表,在该工作表中放置以下数据:

Name Age Gender
Tom 25 Male
Jack 30 Male
Lily 28 Female

在Python中,我们使用pandas库来读取Excel文件。使用以下代码读取Excel文件中的数据:

import pandas as pd

df = pd.read_excel('example.xlsx', sheet_name='Sheet1')

在上面的代码中,我们导入pandas库并使用read_excel()函数读取example.xlsx文件中的Sheet1工作表中的数据,并将其存储在一个名为df的DataFrame对象中。

接下来,我们需要将DataFrame对象中的每一行数据转换为JSON格式。使用以下代码将DataFrame转换为JSON:

import json

data = []

for i in range(len(df)):
  row = df.iloc[i]
  data.append({'name': row['Name'], 'age': row['Age'], 'gender': row['Gender']})

json_data = json.dumps(data)

在上面的代码中,我们首先导入json库,并创建一个空列表data。然后,使用for循环遍历DataFrame中的每一行,并通过DataFrame的iloc()函数获取该行的数据。接着,将该行的数据转换为字典格式(即JSON对象),并将其添加到data列表中。最后,使用json库中的dumps()函数将整个data列表转换为JSON格式字符串,并将其存储在json_data变量中。

如果我们将上面的代码保存在example.py文件中并运行它,将得到以下输出:

[{"name": "Tom", "age": 25, "gender": "Male"}, {"name": "Jack", "age": 30, "gender": "Male"}, {"name": "Lily", "age": 28, "gender": "Female"}]

这是example.xlsx中的所有数据的JSON表示。

为了更好地展示例子,下面提供两个示例说明。

示例1

在这个例子中,我们将添加一个新条目到Excel文件中,并重新运行Python脚本以更新JSON文件。

首先,在example.xlsx工作表中添加以下条目:

Name Age Gender
Michael 35 Male

将Excel文件保存后,运行以下Python代码:

import pandas as pd
import json

df = pd.read_excel('example.xlsx', sheet_name='Sheet1')

data = []
for i in range(len(df)):
  row = df.iloc[i]
  data.append({'name': row['Name'], 'age': row['Age'], 'gender': row['Gender']})

json_data = json.dumps(data)

print(json_data)

运行上面的代码后,我们会看到以下输出:

[{"name": "Tom", "age": 25, "gender": "Male"}, {"name": "Jack", "age": 30, "gender": "Male"}, {"name": "Lily", "age": 28, "gender": "Female"}, {"name": "Michael", "age": 35, "gender": "Male"}]

如您所见,我们添加的新的数据已经被转换为JSON对象并添加到了JSON字符串中。

示例2

在这个例子中,我们将在Python脚本中使用循环来读取和转换Excel文件中的所有数据。

Excel文件中的数据如下:

Name Age Gender
Alice 24 Female
Bob 26 Male
Claire 23 Female
David 31 Male

如何读取Excel文件中的所有数据并将其转换为JSON对象列表?我们可以使用以下Python代码:

import pandas as pd
import json

df = pd.read_excel('example.xlsx', sheet_name='Sheet1')

data = []
for i in range(len(df)):
  row = df.iloc[i]
  data.append({'name': row['Name'], 'age': row['Age'], 'gender': row['Gender']})

json_data = json.dumps(data)
print(json_data)

运行代码后,将得到以下输出:

[{"name": "Alice", "age": 24, "gender": "Female"}, {"name": "Bob", "age": 26, "gender": "Male"}, {"name": "Claire", "age": 23, "gender": "Female"}, {"name": "David", "age": 31, "gender": "Male"}]

如此,我们就循环读取了Excel文件里的所有数据并将其转换为JSON对象列表。

结论

在本文中,我们学习了在Python3中循环读取Excel文件并将其转换为JSON格式的方法。我们使用了pandas库来读取Excel文件,并使用json库将数据转换为JSON格式字符串。这种技术适用于各种数据处理任务,对于需要在不同系统之间传输数据的开发人员和数据科学家非常有用。