Python-从API获取数据



下面的代码从API获取数据。这很好,但是我看到它只返回25行。我正在尝试查看如何从API调用中提取所有数据,而不限于25个

import requests
import pandas as pd

API_KEY = API_KEY

url = 'https://api.pagerduty.com/incidents/'
headers = {
'Accept': 'application/vnd.pagerduty+json;version=2',
'Authorization': 'Token token={token}'.format(token=API_KEY)}
r = requests.get(url, headers=headers)
data = r.content
data_dict = json.loads(data)
data_df = pd.DataFrame(data_dict['incidents'])

这是由于API响应中的分页所致。该调用默认返回25个事件。如果传递limit参数,则可以获得更多,但最多只能获得100。如果循环直到more为false,并在每次调用时增加偏移量,则可以获得所有事件。

关于limit,请参阅此处的API参考资料

请查看此处的文档。

您可以传递查询参数,例如

url = 'https://api.pagerduty.com/incidents?limit=50'

每个文档的最大限制是100,因此您必须发送多个GET请求。如果有数千条记录,请确保您的python脚本在特定的时间间隔发送GET请求,因为速率限制,否则会出现"请求太多"错误。

相关内容

  • 没有找到相关文章

最新更新