2017-01-29 4 views
0

APIからjsonデータをダウンロードしていますが、パラメータの設定に問題があります。具体的には、APIからダウンロードしたいページの数を設定するオプションを作成したいと思います。代わりに10ページで、私は100ページをダウンロード:APIリクエストからpage_countパラメータを指定する

# 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は」関数は、私がダウンロードしたいページ数を設定していない:私のコードは次のようになります。何かご意見は?それが助け場合は、JSONの構造は、このようなものになります。

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

あなたは必ずクエリのparam例えば、 'https://api-v2.themuse.com/jobs?pageをしたくないです。このような何かを、まず10ページのすべてのデータを取得するには= 1&page_count = 10'? – jordanm

+1

'page_count'は有効なパラメータではないようですが、自分の側にも100を持っています。 – Shane

+0

@jordanm私はちょうど試して、それは動作しませんでした。良い提案、しかし! –

答えて

1

API specificationを見てみると、page_countは、出力パラメータではなく、指定したものです。レスポンスデータにページごとに20件の結果が表示されます。

page=1(インデックスはページ0から始まります)と20件の結果を取得しています。

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 
+0

迅速な対応をありがとう! –

+0

このネストされたJSONをどのようにパンダのデータフレームに変換しますか? 私は 'json_normalize'を使うことを考えましたが、それがベストアイデアかどうかは分かりません。 –

関連する問題