分页 HTTP API 的 Python 客户端

标签 python pagination python-requests

我正在使用请求来查询分页 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/

相关文章:

python - 如何删除 beautifulsoup 中的换行符?

python - 使用 scipy.interpolate.interpn 对 N 维数组进行插值

跨不同组件的 Joomla 分页

Angularjs 分页错误

MongoDB:分页导致重复的奇怪排序行为

javascript - 打开 onclick 事件 python requests 库

python - 无法在获取请求中使用 json 参数获得所需的响应

python - 单元测试设计和模拟

python - Tkinter 图像渲染速度很慢。我应该如何改进呢?

python - 在python中合并字典值列表