如何解决如何运行 while 循环来运行 REST API 调用,直到 Python 中不再返回结果
我正在编写一个简短的 Python 程序来使用 Rest API 调用请求一个 JSON 文件。 API 将我限制为相对较小的结果集(50 个左右),我需要检索数千个结果集。我已经实现了一个 while 循环来实现这一点,它运行得相当好,但我无法弄清楚“继续 while 循环”的逻辑,直到没有更多的结果可以检索。现在我已经实现了一个硬数值,但想用一个条件替换它,如果没有更多结果返回,它会停止循环。 'offset' 字段是 API 强制您使用的参数,用于指定您想要的 50 组结果。我的逻辑看起来像...
import requests
import json
from time import sleep
url = "https://someurl"
offsetValue = 0
ParaMS = {'limit':50,'offset':offsetValue}
headers = {
"Accept": "application/json"
}
while offsetValue <= 1000:
response = requests.request(
"GET",url,headers=headers,params = ParaMS
)
testfile = open("testfile.txt","a")
testfile.write(json.dumps(json.loads(response.text),sort_keys=True,indent=4,separators=(",",": ")))
testfile.close()
offsetValue = offsetValue + 1
sleep(1)
所以我想将控制while循环的条件从固定数字更改为检查getRequest的结果集是否为空。希望这是有道理的。
解决方法
您的循环可以是 while true
。每次获取后,将有效负载转换为 dict。如果结果数为 0,则 break
。
根据 API 的工作方式,可能会有其他信号表明没有更多内容可获取,例如一些 HTTP 错误,不一定是结果计数 - 您必须为此发现 API 的逻辑。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。