一、获取网页json数据,写入Excel文件
在这个代码中:
- 定义 fetch_and_save_to_excel 函数,可以重用该函数处理不同的URL和文件名。
- 无需导入json模块,因为在处理requests响应时已经使用了.json()方法。
- 通过将错误处理和数据保存逻辑封装在函数中,使主程序更加简洁。
- 添加了if name == 'main':块,这是Python中的惯用法,确保当脚本被直接运行时才执行主程序。
import requests
from requests.exceptions import HTTPError
import pandas as pd
# 定义获取JSON数据并保存到Excel的函数
def fetch_and_save_to_excel(url, excel_filename):
try:
# 发起GET请求
response = requests.get(url)
response.raise_for_status() # 如果响应状态不是200,将抛出HTTPError
# 解析JSON数据
users_data = response.json()
# 将JSON数据转换为DataFrame
df = pd.DataFrame(users_data)
# 将DataFrame保存到Excel文件
df.to_excel(excel_filename, index=True, header=True, engine='openpyxl')
print(f'保存数据到{excel_filename}成功!')
except HTTPError as http_err:
print(f'HTTP错误发生: {http_err}') # 处理HTTP错误
except Exception as err:
print(f'其他错误发生: {err}') # 处理其他可能的错误
# 主程序
if __name__ == '__main__':
url = 'https://jsonplaceholder.typicode.com/users' # API endpoint
excel_filename = 'users.xlsx' # 导出的Excel文件名
fetch_and_save_to_excel(url, excel_filename)
请注意,to_excel()方法有几个重要的参数:
- index: 是否将DataFrame的索引写入Excel文件,默认为True(在第一列从数据行开始写入索引,默认是0, 1, 2...)。
- header: 是否将DataFrame的列名写入Excel文件,默认为True。
- engine: 指定用于写入Excel文件的引擎,这里是openpyxl。
二、模拟返回json数据的网站
JSONPlaceholder API的网址:
https://jsonplaceholder.typicode.com/
这是一个常见的提供JSON响应的网站。它是一个免费的在线REST API,用于测试和原型设计。它返回各种类型的数据,如用户、帖子、评论等,所有数据都是模拟的。
你可以使用这个API来练习发送HTTP请求并处理JSON响应。以下是一些可用的端点示例:
用户列表:https://jsonplaceholder.typicode.com/users
特定用户的帖子:https://jsonplaceholder.typicode.com/users/1/posts
评论列表:https://jsonplaceholder.typicode.com/comments