📊 数据处理
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
请帮我:
- 测试这个 API 是否可访问
- 展示返回的 JSON 结构
- 识别我需要的字段:name, stars, forks, open_issues
2
处理分页数据
对于返回大量数据的 API,需要分页获取。
API 使用分页,每页返回 100 条记录:
- 第一页: https://api.example.com/data?page=1
- 通过 Link header 或 next_page 字段获取下一页
请创建脚本:
- 自动获取所有页的数据
- 合并为一个完整数据集
- 显示获取进度
- 保存到 ~/data/api_results.json
3
错误处理和重试
增加容错机制,应对网络问题。
请增强脚本的可靠性:
- 如果请求失败,自动重试 3 次
- 每次重试间隔 5 秒
- 如果遇到 429 (限流),等待 60 秒后重试
- 记录所有失败的请求到日志文件
- 支持断点续传(如果中断,下次从上次位置继续)
4
数据转换
将 API 返回的 JSON 转换为便于使用的格式。
请处理获取的数据:
- 提取需要的字段,忽略无关字段
- 展平嵌套结构(如 user.name -> user_name)
- 格式化日期时间为标准格式
- 转换为 CSV 文件:~/data/api_data.csv
- 生成数据字典说明每个字段含义
5
定时自动获取
创建定时任务自动更新数据。
请创建自动化脚本:
- 将上述获取逻辑封装为 Python 脚本
- 添加命令行参数支持(如指定日期范围)
- 每次运行生成带时间戳的文件
- 设置 cron 任务每天凌晨 2 点自动运行
- 如果出错,发送通知邮件
保存为 ~/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 的认证和格式差异。