1

我正在使用 Observable 笔记本,我正在尝试从 url 加载 json 数据,但是当我这样做时:

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

我得到了一个只有 1000 个项目的数组,尽管原始源有超过 44000 行。我已经搜索了有关如何加载完整 json 的示例,但我没有找到任何东西。

4

2 回答 2

4

很多时候,使用 API 时,您可以在任何时候获得的记录数量是有限制的,在您的情况下是 1000。我快速查找了一些信息并找到了一个视频。它是西班牙语的,我听不懂,但看起来它会给你你需要的答案。具体来说,在视频中的 4 分钟 30 处,您似乎可以指定偏移量。

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

4分30秒的视频截图

因此,在您的代码中,您需要循环访问 44000 行,一次 1000 行,以不断增加的偏移量 1000、2000、3000 ... 访问 API,直到您拥有所需的所有数据。

[更新] 我现在有机会对此进行测试,并且可以确认偏移参数的使用。

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

布莱恩

于 2018-09-10T07:23:21.027 回答
1

肯定的 - Bryan 介绍了此请求仅加载 1,000 个条目的原因以及如何从 API 请求另一页数据。这是一个逐页加载数据的笔记本,因此您可以获取所有记录。

于 2018-09-10T22:58:19.883 回答