我正在使用请求来查询分页 API。
这个answer对我来说已经看起来很不Pythonic,但我的情况更糟,因为API没有最后一个页面参数,它只有最后一个URL参数,所以我必须这样做
url = 'http://my_url'
result = request(url)
data = result['datum']
while not result['last_url'] == url:
url = result['next_page']
result = request(url)
data += result['datum']
这看起来不太Pythonic,有没有更优雅的方法?
最佳答案
我会编写一个生成页面的生成器函数:
def pages(url):
page = {'last_url': None,
'next_page': url}
while page['last_url'] != url:
url = page['next_page']
page = request(url)
yield page
然后你可以这样使用它:
data = ''.join([page['datum'] for page in pages(url)])
关于分页 HTTP API 的 Python 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34811124/