Python实现读取json文件到excel表

  • Post category:Python

下面详细讲解Python实现读取json文件到excel表的完整实例教程:

1、准备工作

在开始之前,需要安装 Pandasxlwt 这两个库。

可以使用以下命令安装它们:

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')