我们不仅可以通过网页获得有价值的数据。在实际业务中,基于 API(应用程序接口) 的数据交互也是非常关键的一环。许多系统通过 API 进行数据交换,确保信息在不同平台之间的流通。自动化 API 数据交互可以帮助我们定时获取最新数据、自动处理和整理数据,以及自动生成报告或将数据传递给其他系统。
在 Python 中,我们可以使用 `requests` 库获取 API 数据,处理返回的 JSON 数据,并通过简单的数据处理生成报告。
什么是 API ?
API(应用程序编程接口)是一组定义不同软件系统如何相互通信的规范。借助 API,我们可以:
- 向外部系统请求数据(如产品信息、天气数据、金融数据等);
- 将获取的数据进行处理、分析并生成报告;
- 实现数据的自动更新与传递,减少人工干预。
- 发送 HTTP 请求(GET、POST等)。
- 获取并解析响应数据(通常为 JSON 格式)。
- 对数据进行处理,例如转换为 DataFrame、统计信息提取或生成报告。
示例代码:
import requests
import pandas as pd
# 示例 API 地址(请根据实际情况替换)
api_url = "https://api.example.com/products"
# 如果需要授权,可以添加请求头(例如 Bearer Token 认证)
headers = {
"Authorization": "Bearer YOUR_API_TOKEN"
}
try:
# 发送 GET 请求获取 API 数据
response = requests.get(api_url, headers=headers)
# 如果响应状态码不是200,则抛出异常
response.raise_for_status()
# 解析返回的 JSON 数据
data = response.json()
print("成功获取 API 数据。")
# 假设返回的数据为产品信息列表,每个产品包含 id、name、price 等字段
# 将数据转换为 pandas DataFrame
df = pd.DataFrame(data)
# 输出部分数据,查看结构
print("产品数据预览:")
print(df.head())
# 生成报告:保存为 CSV 文件
df.to_csv("product_report.csv", index=False)
print("产品报告已保存为 'product_report.csv'.")
except Exception as e:
print(f"获取或处理 API 数据时发生错误:{e}") 代码说明
- 发送请求:
使用requests.get()向 API 地址发送 GET 请求,并通过headers传入授权信息(如果需要)。 - 错误处理:
response.raise_for_status()用于检查响应状态码,如果请求失败,则自动抛出异常。 - 解析 JSON 数据:
使用response.json()将返回的 JSON 数据转换为 Python 对象(通常为列表或字典)。 - 数据处理:
将获取的产品数据转换为 pandas DataFrame,便于后续数据处理和分析。 - 生成报告:
使用to_csv()方法将 DataFrame 保存为 CSV 文件,生成产品报告。 - 异常捕获:
通过 try-except 块捕获请求、解析或保存数据过程中的错误,并输出详细错误信息。
提示词示例:
提示词:
请编写一个 Python 脚本,使用 requests 读取 API 地址 "https://api.example.com/products" 获取产品信息,并将返回的 JSON 数据转换为 pandas DataFrame。要求在获取过程中加入异常处理,如果请求失败或数据解析出错,则输出详细错误信息。最后,请将产品数据保存为 CSV 文件 "product_report.csv"。
练习:
- 请修改示例代码,增加对 API 请求返回数据格式的验证,并在数据不符合预期时输出警告信息。
- 请设计一个提示词,使生成的代码支持动态选择 API 地址(通过用户输入参数)并根据返回数据生成不同格式的报告(例如 CSV 或 JSON 格式)。
AI 助教
提示:您可在此提出学习中遇到的问题。回答由 AI 生成,可能存在错误,请注意甄别。
