【问题标题】:Iterate through pagenumbers in URL - Python Curl API遍历 URL 中的页码 - Python Curl API
【发布时间】:2020-04-15 11:03:10
【问题描述】:

我想通过 API 获取所有传入呼叫并将它们保存到 JSON 文件中。

API 仅提供每页 100 次调用。

我需要遍历 URL 中的页面

ApiRequestCallCenterDaily = requests.get('https://api.placetel.de/v2/call_center_calls?date=2020-04-01&page=1&per_page=100', params={
'date': '2020-04-14'}, 
headers=headers)

我需要循环遍历这部分直到 x page=1

After that i write the JSON-Object into a JSON-File to upload it to S3
DailyJsonFileForCallCenterCalls = open("call_center_calls_daily.json", "a")
print(ApiRequestCallCenterDaily.json(), file=DailyJsonFileForCallCenterCalls)
DailyJsonFileForCallCenterCalls.close()

我不是开发人员,所以我正在寻求一个简短的解释,如何迭代 X 页面。

我尝试了不同的解决方案,但我不明白自己的错误。

【问题讨论】:

  • 注意Python的命名约定! variables 不应该以 uppercase 字母开头!
  • 我会改的!
  • 欢迎您!如果我理解正确,并且您想将字符串“page=1”更改 100 次以从 1 迭代到 100,您应该查找 Python 字符串和字符串连接。
  • 我想将页面从 1 更改为 10,并在同一个 JSON 文件中保护所有内容。我会看看你的建议。谢谢!
  • @CLi 检查下面的答案,在(1, 101) 的循环中,您可以将其更改为(1, 11),因此它将以1 开头并以10 结尾

标签: python json api loops curl


【解决方案1】:
import requests

params = {
    'date': '2020-04-01',
    'per_page': '100'
}


def main(url):
    with requests.Session() as req:
        for item in range(1, 101):
            params['page'] = item
            r = req.get(url, params=params).json()
            with open("data.json", 'a') as f:
                f.write(r)


main("https://api.placetel.de/v2/call_center_calls")

【讨论】:

  • 谢谢,我试试看!
  • @CLi 欢迎您,如果对您有帮助,请随时 accept my answer。
猜你喜欢
  • 2021-12-20
  • 2010-10-15
  • 2018-08-27
  • 2014-04-22
  • 2018-10-18
  • 2022-07-07
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
相关资源
最近更新 更多