📊 数据处理

API 数据获取整理

从 API 接口获取数据,处理并保存为结构化文件

★★★ 高级 20-30 min 2025年1月12日

概述

许多服务提供 API 接口供程序访问数据。Claude 可以帮你编写脚本从 API 获取数据,处理分页、错误重试,并将结果整理为表格或报告。

适用场景

  • 获取社交媒体统计数据
  • 提取电商平台订单信息
  • 收集天气、股票等公开数据
  • 同步第三方系统数据

操作步骤

1

理解 API 结构

先测试 API 调用,了解返回格式。

我要从 GitHub API 获取仓库信息: API: https://api.github.com/repos/user/repo 请求类型: GET 需要 Token: ghp_xxxxx

请帮我:

  1. 测试这个 API 是否可访问
  2. 展示返回的 JSON 结构
  3. 识别我需要的字段:name, stars, forks, open_issues
2

处理分页数据

对于返回大量数据的 API,需要分页获取。

API 使用分页,每页返回 100 条记录:

请创建脚本:

  1. 自动获取所有页的数据
  2. 合并为一个完整数据集
  3. 显示获取进度
  4. 保存到 ~/data/api_results.json
3

错误处理和重试

增加容错机制,应对网络问题。

请增强脚本的可靠性:

  • 如果请求失败,自动重试 3 次
  • 每次重试间隔 5 秒
  • 如果遇到 429 (限流),等待 60 秒后重试
  • 记录所有失败的请求到日志文件
  • 支持断点续传(如果中断,下次从上次位置继续)
4

数据转换

将 API 返回的 JSON 转换为便于使用的格式。

请处理获取的数据:

  1. 提取需要的字段,忽略无关字段
  2. 展平嵌套结构(如 user.name -> user_name)
  3. 格式化日期时间为标准格式
  4. 转换为 CSV 文件:~/data/api_data.csv
  5. 生成数据字典说明每个字段含义
5

定时自动获取

创建定时任务自动更新数据。

请创建自动化脚本:

  1. 将上述获取逻辑封装为 Python 脚本
  2. 添加命令行参数支持(如指定日期范围)
  3. 每次运行生成带时间戳的文件
  4. 设置 cron 任务每天凌晨 2 点自动运行
  5. 如果出错,发送通知邮件 保存为 ~/scripts/api_fetcher.py

注意 API 的调用频率限制(Rate Limit)。过于频繁的请求可能导致被封禁。建议添加请求间隔,并缓存不常变化的数据。

将 API 密钥存储在环境变量或配置文件中,不要硬编码在脚本里,避免泄露。使用 .env 文件管理密钥,并加入 .gitignore。

常见问题

Q: API 返回的数据太大,内存不够怎么办? A: 使用流式处理,边获取边写入文件,不要一次性加载所有数据到内存。或者分批处理,每次只获取一部分数据。

Q: 如何处理 API 版本升级? A: 在脚本中指定 API 版本号(通常在 URL 或 Header 中)。监控 API 文档的变更通知,及时更新脚本。

Q: 可以同时调用多个 API 吗? A: 可以。Claude 可以创建脚本并发调用多个 API,或从多个数据源获取数据后合并。注意处理不同 API 的认证和格式差异。