下面是“Python读取Json字典写入Excel表格的方法”的完整实例教程:
1. 读取Json文件
首先,我们需要将Json文件读入Python中,并转换为Python的字典类型。假设我们有一个名为data.json的Json文件,格式如下:
{
"name": "张三",
"age": 25,
"gender": "男",
"phone": "123456789",
"address": "广州市海珠区"
}
我们可以使用Python的json模块来读取Json文件,并将其转换为Python字典类型,代码如下:
import json
# 读取Json文件
with open('data.json', 'r', encoding='utf-8') as f:
json_str = f.read()
# 转换为Python字典类型
data = json.loads(json_str)
print(data)
运行上述代码后,输出结果为:
{
"name": "张三",
"age": 25,
"gender": "男",
"phone": "123456789",
"address": "广州市海珠区"
}
2. 写入Excel表格
接下来,我们需要将上一步中得到的字典数据写入Excel表格中。我们可以使用Python的openpyxl模块来操作Excel文件。假设我们要将上述字典数据写入名为data.xlsx的Excel文件的第一行,代码如下:
from openpyxl import Workbook
# 创建一个新的工作簿
wb = Workbook()
# 获取活动的工作表
ws = wb.active
# 写入数据到第一行
ws.append(list(data.keys()))
ws.append(list(data.values()))
# 保存Excel文件
wb.save('data.xlsx')
运行上述代码后,会在当前目录下生成一个名为data.xlsx的Excel文件。打开该文件后,可以看到第一行已经成功写入了我们要导入的Json数据。注意,此处我们将Json数据转换为Python字典类型后,通过keys()方法获取键名列表,通过values()方法获取键值列表,然后使用append()方法将它们分别写入Excel文件的第一行和第二行。
示例1
接下来,我们来看一个例子,假设我们有一个名为student.json的Json文件,格式如下:
{
"学号1": {
"name": "张三",
"score": [80, 90, 85]
},
"学号2": {
"name": "李四",
"score": [75, 85, 80]
},
"学号3": {
"name": "王五",
"score": [90, 95, 92]
}
}
我们想要将该文件中的学生信息导入到Excel文件中。我们可以按照上述步骤进行操作,代码如下:
import json
from openpyxl import Workbook
# 读取Json文件
with open('student.json', 'r', encoding='utf-8') as f:
json_str = f.read()
# 转换为Python字典类型
data = json.loads(json_str)
# 创建一个新的工作簿
wb = Workbook()
# 获取活动的工作表
ws = wb.active
# 写入表头:学号、姓名、成绩1、成绩2、成绩3
ws.append(['学号', '姓名', '成绩1', '成绩2', '成绩3'])
# 写入数据到Excel表格
for key in data:
row = [key, data[key]['name']]
row.extend(data[key]['score'])
ws.append(row)
# 保存Excel文件
wb.save('student.xlsx')
运行上述代码后,会在当前目录下生成一个名为student.xlsx的Excel文件,数据与原Json文件中的学生信息一一对应。
示例2
假设我们有一个名为city.json的Json文件,格式如下:
[
{
"name": "北京",
"population": 2154.20,
"area": 16808.83
},
{
"name": "上海",
"population": 2423.78,
"area": 6340.50
},
{
"name": "广州",
"population": 1505.96,
"area": 7434.40
}
]
我们希望将该文件中的城市信息导入到Excel文件中,并计算出每个城市的人口密度(人/km²)。我们可以按照上述步骤进行操作,代码如下:
import json
from openpyxl import Workbook
# 读取Json文件
with open('city.json', 'r', encoding='utf-8') as f:
json_str = f.read()
# 转换为Python列表类型
data = json.loads(json_str)
# 创建一个新的工作簿
wb = Workbook()
# 获取活动的工作表
ws = wb.active
# 写入表头:城市、人口、面积、人口密度
ws.append(['城市', '人口', '面积', '人口密度'])
# 写入数据到Excel表格,并计算人口密度
for city in data:
name = city['name']
population = city['population']
area = city['area']
density = population / area
ws.append([name, population, area, density])
# 保存Excel文件
wb.save('city.xlsx')
运行上述代码后,会在当前目录下生成一个名为city.xlsx的Excel文件,数据与原Json文件中的城市信息一一对应,同时在表格中计算出了每个城市的人口密度。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python读取Json字典写入Excel表格的方法 - Python技术站