循环到请求分页链接

时间:2018-05-25 16:14:13

标签: python python-2.6

我想遍历分页页面,直到我到达最后一页。我在页面上搜索分页这个词,只要它存在,我希望我的循环继续。我现在所拥有的不执行while循环中的部分。我已单独测试条件语句以验证它是否返回True。

response = requests.get("someapi.api")
data = response.json()

while "pagination" in str(data) == True:
    print "Found string"
    response = requests.get(str(pag_object), timeout=5)
    data = response.json()

1 个答案:

答案 0 :(得分:2)

您的情况不正确。这就是你想要的:

while "pagination" in str(data):
    # ...

(至少在这种情况下,由于您将结构化JSON作为响应,可能会有更简洁的方法来执行此检查,但这不是重点。)

您的原始状态不起作用,因为在引擎盖下,Python将其解释为

"pagination" in str(data) and str(data) == True

这是所有比较运算符(包括in等成员资格测试)具有same precedencechaining of comparison operators的结果。

链接意味着您可以编写一个常见的数学表达式,例如x < y < z,这意味着我们通常认为它的作用 - y介于x和{{之间1}}。或者换句话说,z

但是,应用于原始表达式,这种链接会导致您看到令人惊讶的结果。

这种情况发生即使你单独测试了你的部分条件,因为问题是在那些子表达式的特定组成中。如果您是通过将左侧部分分组来编写的

x < y AND y < z
像那样,它实际上会起作用 - 虽然这是不必要的。只是在Python中做("pagination" in str(data)) == True 就足够了,风格要好得多。