Используя chunk в json, запросы на получение больших данных в python
Я пытаюсь получить большие данные в Python с помощью API. Но я не могу получить все данные. Запрос позволяет получить только первые 1000 строк.
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)
Сайт содержит почти 6 миллионов точек данных. Все же только 1000 извлечены. Как мне обойти это? Правильный ли вариант? Может кто-нибудь, пожалуйста, помогите мне с кодом?
Благодарю.
1 ответ
Вам нужно разбить результаты на страницы, чтобы получить весь набор данных. Большинство API ограничивают количество результатов, возвращаемых в одном запросе. Согласно Сократским документам, необходимо добавить $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
Продолжайте увеличивать, пока не получите весь набор данных.