【发布时间】:2019-10-05 16:54:35
【问题描述】:
我需要通过 API 进行分页,并且正在创建 URL。
网址如下所示:
/search/officers?q=XXXXX&items_per_page=50&start_index={}
返回的 JSON 中每页允许的最大项目数为 50,根据我需要更改的页数 start_index={} 字符串。
我通过将总结果数除以每页的最大项目数来计算需要执行的分页数。
pages = 355
count_by_n = 50
for i in range(pages+1):
if i is 0:
print("start_index={}".format(i))
else:
global count_by_n
count_by_n += 50
print(str("start_index={}".format(str(count_by_n + 1))))`
产生:
start_index=0
start_index=101
start_index=151
start_index=201
start_index=251
start_index=301
start_index=351
start_index=401
<>:7: SyntaxWarning: name 'count_by_n' is assigned to before global declaration
从技术上讲,这是我想要的结果,但我想知道是否有办法绕过该消息,也许可以通过递归解决这个问题。
【问题讨论】:
-
为什么以
start_index=0开头?此外,51不见了。 -
因为第一页是从0到50,第二页是从51到100。是的,我发帖后想的,现在编辑。
-
但这没有多大意义,要么第一页从1到50(第二页从51到100),要么第一页从0到49,第二页从50到 99。否则两个页面有不同数量的元素。它也与您后来的请求不“和谐”,从那时起您从
101获取到151,因此跳数为 50,而不是 51。 -
你是对的,它是从 1 到 50 - 51 到 100 等等...
标签: python algorithm loops recursion functional-programming