从API请求中指定page_count参数

时间:2017-01-29 04:42:48

标签: python parameters python-requests

我正在从API下载json数据,但我在设置参数时遇到问题。具体来说,我想创建一个选项,设置我想从API下载多少页面。我的代码看起来像这样:

# Libraries
import json, requests

# Define API, endpoint, and page number
url = 'https://api-v2.themuse.com/jobs?page=1'

# Set page count parameter
params = {'page_count': 10}

# Request data from API and store into object
resp = requests.get(url=url, params=params)

# Save data as JSON
data = json.loads(resp.text)

然而,'params'功能没有设置我想要下载的页数:我下载100页,而不是10页。有什么想法吗?如果有帮助,JSON结构看起来像这样:

{
  "page": 1,
  "page_count": 100,
  "took": 10,
  "timed_out": false,
  "total": 35210
}

1 个答案:

答案 0 :(得分:1)

查看API specificationpage_count是输出参数,而不是您指定的内容。响应数据分页,每页20个结果。

您正在请求page=1(索引从第0页开始)并获得20个结果。要获取前10页的所有数据,请执行以下操作:

jobs_url = 'https://api-v2.themuse.com/jobs'

for i in range(11):
    results_data = json.loads(requests.get(
        url=jobs_url,
        params={'page': i}
    ).text)['results']

    #do something with the data