下面详细讲解Python实现读取json文件到excel表的完整实例教程:
1、准备工作
在开始之前,需要安装 Pandas
和 xlwt
这两个库。
可以使用以下命令安装它们:
pip install pandas
pip install xlwt
2、读取JSON文件
读取JSON文件并提取出需要的数据,可以使用Python内置的 json
模块。
假设有一个名为 example.json
的JSON文件,其内容如下:
{
"users": [
{
"id": 1,
"name": "Alice",
"age": 25,
"email": "alice@example.com"
},
{
"id": 2,
"name": "Bob",
"age": 30,
"email": "bob@example.com"
},
{
"id": 3,
"name": "Charlie",
"age": 35,
"email": "charlie@example.com"
}
]
}
现在我们可以使用以下代码读取该文件并提取出其中的用户信息:
import json
with open('example.json', 'r') as f:
data = json.load(f)
users = data['users']
3、将数据转为DataFrame
在使用 Pandas
将数据写入Excel表格之前,需要将用户信息数据转为 DataFrame
对象。
可以使用以下代码将数据转为 DataFrame
对象:
import pandas as pd
df = pd.DataFrame(users)
4、将数据写入Excel表格
现在我们已经成功读取了JSON文件,并将数据转为了 DataFrame
对象,接下来就是将数据写入Excel表格。
使用 xlwt
库可以方便地创建和写入Excel表格。可以使用以下代码将 DataFrame
对象写入Excel表格:
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('users')
# 写入表头
headers = list(users[0].keys())
for i, header in enumerate(headers):
sheet.write(0, i, header)
# 写入数据
for i, row in enumerate(users):
for j, value in enumerate(row.values()):
sheet.write(i+1, j, value)
workbook.save('users.xls')
以上代码会将数据以 xls
格式保存到当前目录下的 users.xls
文件中。
5、完整示例
以下是将以上步骤整合成完整的代码示例:
import json
import pandas as pd
import xlwt
# 读取JSON文件并提取出需要的数据
with open('example.json', 'r') as f:
data = json.load(f)
users = data['users']
# 将数据转为DataFrame
df = pd.DataFrame(users)
# 将数据写入Excel表格
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('users')
# 写入表头
headers = list(users[0].keys())
for i, header in enumerate(headers):
sheet.write(0, i, header)
# 写入数据
for i, row in enumerate(users):
for j, value in enumerate(row.values()):
sheet.write(i+1, j, value)
workbook.save('users.xls')
以上就是Python实现读取JSON文件到Excel表格的完整教程了。
附加示例1:读取一个HTTP接口返回的JSON数据到Excel表格。
import requests
import pandas as pd
import xlwt
# 发起HTTP请求获取JSON数据
response = requests.get('http://example.com/users')
data = response.json()
# 将数据转为DataFrame
users = data['users']
df = pd.DataFrame(users)
# 将数据写入Excel表格
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('users')
# 写入表头
headers = list(users[0].keys())
for i, header in enumerate(headers):
sheet.write(0, i, header)
# 写入数据
for i, row in enumerate(users):
for j, value in enumerate(row.values()):
sheet.write(i+1, j, value)
workbook.save('users.xls')
附加示例2:读取一个已有的JSON文件中多个数组到不同的Excel表格。
import json
import pandas as pd
import xlwt
# 读取JSON文件并提取出需要的数据
with open('example.json', 'r') as f:
data = json.load(f)
users = data['users']
products = data['products']
# 将数据转为DataFrame
df_users = pd.DataFrame(users)
df_products = pd.DataFrame(products)
# 将数据写入Excel表格
workbook = xlwt.Workbook()
sheet_users = workbook.add_sheet('users')
sheet_products = workbook.add_sheet('products')
# 写入users表格
headers = list(users[0].keys())
for i, header in enumerate(headers):
sheet_users.write(0, i, header)
for i, row in enumerate(users):
for j, value in enumerate(row.values()):
sheet_users.write(i+1, j, value)
# 写入products表格
headers = list(products[0].keys())
for i, header in enumerate(headers):
sheet_products.write(0, i, header)
for i, row in enumerate(products):
for j, value in enumerate(row.values()):
sheet_products.write(i+1, j, value)
workbook.save('example.xls')