Ограничение количества предметов на d3.json observablehq

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

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

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

1
0
195
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Очень часто с 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 ... до тех пор, пока у вас не будут все необходимые данные.

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

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

Брайан

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

Другие вопросы по теме