使用Thinkific Admin API获取用户数据遇默认限制,求助获取全量数据
解决Thinkific Admin API获取全量用户数据的问题
Thinkific Admin API默认采用分页机制,不管是否显式设置limit参数,单页最多返回25条数据。要获取所有用户数据,你需要通过分页遍历所有页面来实现——API响应里会返回总页数信息,我们可以基于这个循环请求每一页的数据。
修改后的代码示例
import requests import json import pandas as pd pd.set_option('display.max_columns', None) # 替换为你的实际API密钥和子域名 API_KEY = "你的API密钥" SUBDOMAIN = "你的子域名" BASE_URL = "https://api.thinkific.com/api/public/v1/users" headers = { "X-Auth-API-Key": API_KEY, "X-Auth-Subdomain": SUBDOMAIN, "Content-Type": "application/json" } all_users = [] current_page = 1 # 先获取第一页,拿到总页数 response = requests.get(f"{BASE_URL}?page={current_page}", headers=headers) response.raise_for_status() # 请求失败时直接抛出异常 parse_json = json.loads(response.text) all_users.extend(parse_json['data']) total_pages = parse_json['meta']['total_pages'] # 循环获取剩余页面的数据 while current_page < total_pages: current_page += 1 response = requests.get(f"{BASE_URL}?page={current_page}", headers=headers) response.raise_for_status() parse_json = json.loads(response.text) all_users.extend(parse_json['data']) # 转换为DataFrame方便查看和处理 df = pd.DataFrame(all_users) print(df)
关键说明
- 分页控制:通过
page参数指定当前请求的页码,起始值为1 - 总页数获取:API响应的
meta字段包含total_pages,这是循环的终止条件 - 数据合并:用列表
extend方法将每一页的用户数据追加到总列表,最后统一处理 - 异常检查:
response.raise_for_status()可以在请求出错时快速定位问题
内容的提问来源于stack exchange,提问作者LuizGustavoDias
相关产品推荐
相关产品推荐

