2017-03-14 11 views
0

APIを使用して大きなデータをPythonに取得しようとしています。しかし、私はデータ全体を得ることができません。リクエストでは、最初の1000行だけを取得できます。jsonでチャンクを使用すると、大量のデータをPythonに取得する要求

r = requests.get("https://data.cityofchicago.org/resource/6zsd-86xi.json") 

json=r.json() 
df=pd.DataFrame(json) 
df.drop(df.columns[[0,1,2,3,4,5,6,7]], axis=1, inplace=True) #dropping some columns 
df.shape 

出力は

(1000,22) 

ウェブサイトは、ほぼ600万のデータポイントが含まれています。それでも1000個しか検索されません。これをどうやって回避するのですか?チャンクは正しいオプションですか?誰かがコードを教えてくれますか?

ありがとうございました。

答えて

1

データセット全体を取得するには、結果を改ページする必要があります。ほとんどのAPIでは、1回のリクエストで返される結果の量が制限されます。 Socrata docsによれば、$limit$offsetパラメータをリクエストURLに追加する必要があります。

例えば、結果の最初のページのためにあなたが開始する - そして、次のページのためにあなただけ増分します https://data.cityofchicago.org/resource/6zsd-86xi.json?$limit=1000&$offset=0

オフセット - あなたが全体のデータセットを持つまで https://data.cityofchicago.org/resource/6zsd-86xi.json?$limit=1000&$offset=1000

が増加し続けます。

+0

ありがとうございます。出来た。 –

+0

素晴らしい!私の答えを受け入れるのは気になりますか? https://i.stack.imgur.com/LkiIZ.png – etemple1

関連する問題