首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python API分页循环变为无限

python API分页循环变为无限
EN

Stack Overflow用户
提问于 2020-11-17 01:36:04
回答 2查看 277关注 0票数 0

我不明白为什么这个while循环是无限的(看起来是这样的,因为它只是卡住了),它会递增页码,并在得到一个空的正文(没有更多的结果)时停止请求。我用响应正文的长度检查正文

代码语言:javascript
复制
baseurl = "https://jobs.github.com/positions.json"

def get_number_of_jobs(technology):
    number_of_jobs = 0
    page=1
    payload={"description":technology,"page":page}
    new_results=1
    while new_results>0:
        r=requests.get(baseurl,payload)
        new_results =len(r.json())
        page+=1
        number_of_jobs+=(len(r.json()))
         
    return technology,number_of_jobs
EN

回答 2

Stack Overflow用户

发布于 2020-11-17 01:43:50

您的payload={"description":"php","page":page}应该在while循环中,因为它的page在其他情况下始终为1。

你的代码应该是:

代码语言:javascript
复制
baseurl = "https://jobs.github.com/positions.json"

def get_number_of_jobs(technology):
    number_of_jobs = 0
    page=1
    new_results=1
    while new_results>0:
        payload={"description":technology,"page":page}
        r=requests.get(baseurl,payload)
        new_results =len(r.json())
        page+=1
        number_of_jobs+=(len(r.json()))
         
    return technology,number_of_jobs
票数 2
EN

Stack Overflow用户

发布于 2020-11-17 01:40:07

循环是无限的,因为条件new_results > 0始终为真。

正如@DYZ所指出的,payload变量永远不会改变,因此您总是请求相同的页面,因此在每次迭代中不会更改任何值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64862905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档