Ограничение по пункту d3.json observablehq - PullRequest
0 голосов
/ 10 сентября 2018

Я работаю над записной книжкой Observable, я пытаюсь загрузить данные json из URL, но когда я делаю:

dataSet = d3.json("https://www.datos.gov.co/resource/cdhn-7vn8.json")

Я получаю массив всего из 1000 элементов, хотя исходный источник содержит более 44000 строк. Я искал примеры того, как загрузить полный JSON, но я ничего не нашел.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Конечно. Брайан объяснил причину, по которой этот запрос загружает только 1000 записей и как запросить другую страницу данных из API. Вот блокнот, который загружает данные страницу за страницей , чтобы вы могли получить все записи.

0 голосов
/ 10 сентября 2018

Очень часто с API есть ограничение на количество записей, которые вам разрешено получать в любое время, а в вашем случае это 1000. Я быстро просмотрел некоторую информацию и нашел видео. Это на испанском языке, который я не понимаю, но, похоже, он даст вам ответ, который вам нужен. В частности, в 4 минуты 30 в видео, похоже, вы можете указать смещение.

https://herramientas.datos.gov.co/es/content/desarrollar-usando-los-datos

Video screenshot at 4min 30secs

Итак, в вашем коде вам нужно перейти к 44000 строк по 1000 за раз, получая доступ к API с постоянно увеличивающимся смещением 1000, 2000, 3000 ... до тех пор, пока у вас не будут все необходимые данные.

[Update] У меня была возможность проверить это сейчас и я могу подтвердить использование параметра смещения.

https://www.datos.gov.co/resource/cdhn-7vn8.json

или

https://www.datos.gov.co/resource/cdhn-7vn8.json?$offset=0

вернет первые 1000 записей.

https://www.datos.gov.co/resource/cdhn-7vn8.json?$offset=1000

вернет следующие 1000 записей и т. Д.

Я рекомендую использовать Postman для тестирования API, это отличный инструмент. https://www.getpostman.com/apps

Bryan

...