While 循环请求分页 Link
While Loop to Request Pagination Link
我想遍历分页页面,直到到达最后一页。我在页面中搜索分页一词,只要它出现,我就希望我的循环继续。我现在所拥有的不执行 while 循环内的部分。我已经单独测试了条件语句以验证它returns 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()
您的条件不正确。这就是您想要的:
while "pagination" in str(data):
# ...
(至少对于条件而言,因为您将 JSON 结构化为响应,所以可能有更简洁的方法来进行此检查,但这不是重点)。
您的原始条件不起作用,因为在幕后,Python 将其解释为
"pagination" in str(data) and str(data) == True
这是所有具有 same precedence and chaining of comparison operators.
的比较运算符(包括 in
之类的成员测试)的结果
Chaining 意味着你可以写一个像 x < y < z
这样的普通数学表达式,它意味着我们通常认为它所做的 - y
介于 [=16] 之间=] 和 z
。或者换句话说,x < y AND y < z
.
但是,应用于您的原始表达式,此链接会导致您看到的令人惊讶的结果。
尽管您单独测试了部分条件,但这种情况还是会发生,因为问题在于这些子表达式的特定组合。如果你是通过分组左边的部分来写的
("pagination" in str(data)) == True
像那样,它实际上会起作用——尽管它是不必要的。在 Python 中只做 if item in sequence
就足够了,而且风格更好。
我想遍历分页页面,直到到达最后一页。我在页面中搜索分页一词,只要它出现,我就希望我的循环继续。我现在所拥有的不执行 while 循环内的部分。我已经单独测试了条件语句以验证它returns 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()
您的条件不正确。这就是您想要的:
while "pagination" in str(data):
# ...
(至少对于条件而言,因为您将 JSON 结构化为响应,所以可能有更简洁的方法来进行此检查,但这不是重点)。
您的原始条件不起作用,因为在幕后,Python 将其解释为
"pagination" in str(data) and str(data) == True
这是所有具有 same precedence and chaining of comparison operators.
的比较运算符(包括in
之类的成员测试)的结果
Chaining 意味着你可以写一个像 x < y < z
这样的普通数学表达式,它意味着我们通常认为它所做的 - y
介于 [=16] 之间=] 和 z
。或者换句话说,x < y AND y < z
.
但是,应用于您的原始表达式,此链接会导致您看到的令人惊讶的结果。
尽管您单独测试了部分条件,但这种情况还是会发生,因为问题在于这些子表达式的特定组合。如果你是通过分组左边的部分来写的
("pagination" in str(data)) == True
像那样,它实际上会起作用——尽管它是不必要的。在 Python 中只做 if item in sequence
就足够了,而且风格更好。