gpt4 book ai didi

python - 如何在 Python 中循环 GET 请求以从数据帧中的分页 API 接收所有数据

转载 作者:太空宇宙 更新时间:2023-11-03 21:18:45 24 4
gpt4 key购买 nike

我需要使用 Python 从 API 中提取所有数据,但每个页面仅包含 100 个结果,并且我无法确定如何使用 WHILE 循环返回每个页面,以便我可以将所有数据放入单个数据框中。 api以url格式设置,“https://www.api.url.com/sessions?apikey=xxxx&apisecret=xxx&fromdate=2018-11-11&todate=2019-01-31&page=1&country=US

页面和国家/地区都是可选参数。

我尝试更改 api url,例如“page=1:160”和“page=1-160”,但它只返回第一页。

然后我尝试将页面参数添加为单独的语句,这会返回名称错误;

输入:

response = requests.get("https://www.api.url.com/sessions?            
apikey=xxxx&apisecret=xxx&fromdate=2018-11-11&todate=2019-01-31",
params={'page': page}))
data = response.json()
df=pd.DataFrame(data['Sessions'])
pd.options.display.max_rows = 2000

输出:

NameError name 'page' is not defined

接下来,我尝试运行相同的代码,但从所有者指定的 API 格式开始,但收到了非常相似的错误消息;

输入:

r_sessions = requests.get("https://www.api.url.com/sessions?            
apikey=xxxx&apisecret=xxx&fromdate=2018-11-11&todate=2019-01-31").json()
num_pages=r_sessions['last_page']
for page in range(2, num_pages + 1):
r_sessions = requests.get("https://www.api.url.com/sessions?
apikey=xxxx&apisecret=xxx&fromdate=2018-11-11&todate=2019-01-31", params={'page': page}).json()
print(r_sessions['page'])

输出:

KeyError 'last_page'

我期望获得一个包含 API 的所有结果的数据框,即使它们是分页的。但是,每次 API 调用一次最多只能获取一页。我知道我需要循环它,但我不知道如何循环,因为我不知道有多少页。

最佳答案

  1. 该页面是预期的,因为在定义字典时,您在键上使用了单引号,而不是在值上使用了单引号,因此会出现错误。没有单引号或双引号 python 认为这是一个 undefined variable

正确的代码,没有页面错误:

response = requests.get("https://www.api.url.com/sessions? 
apikey=xxxx&apisecret=xxx&fromdate=2018-11-11&todate=2019-01-31",
params={'page': 'page'}))
data = response.json()
df=pd.DataFrame(data['Sessions'])
pd.options.display.max_rows = 2000
  • 收到的 json 中不存在 r_session 键。您可以使用下面的简单代码来检查 json 中的顶级 key 。
  • r_sessions = requests.get("https://www.api.url.com/sessions?apikey=xxxx&apisecret=xxx&fromdate=2018-11-11&todate=2019-01-31").json()
    对于 r_sessions 中的 i:
    打印(i)

    关于python - 如何在 Python 中循环 GET 请求以从数据帧中的分页 API 接收所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54484149/

    24 4 0
    文章推荐: python - 尝试从 Django 连接 Neo4j 数据库时出现错误
    文章推荐: python - 将 opencv 帧写入 gstreamer rtsp 服务器管道
    文章推荐: javascript - 如何在
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com