我认为使用 API 意味着如果数据更新,您
将收到更改,而将其导出为 .csv 将意味着
内容将不再更改。
您是正确的,如果您将 csv 下载到您的计算机,该 csv 文件将不再更新。
API 是你可以调用的东西——在这种情况下,你可以调用 API,说“嘿,你有关于 xxx 的最新数据吗?”,你会得到关于你所问内容的最新信息。但这并不意味着,当有新的更新时,此站点会通知您 - 您必须不断调用 API(每小时、每天等)以查看是否有任何更改。
我的问题是:如何使用此 API 代码来显示相同的
导出 .csv 文件时会得到表一。
你会:
- 从服务器代码或云服务调用 API
- 让服务器代码或云服务解密(或“解析”)响应
- 使用解密后的响应创建一个由 HTML 组成的表格,或将其放入数据库中
您会使用数据库来提取这些信息吗?什么样的
数据库以及如何将 API 链接到数据库?
您不一定需要数据库来提取信息,尽管数据库可以很好地将最终数据放入其中。
您首先需要某种方式来“调用 REST API”。有很多方法可以做到这一点 - 使用 Shell 脚本、使用 Python、使用 Excel VBA 等。
我知道这很难想象,因此这里是第 1 步的示例,您可以在其中检索信息。
尝试在 Chrome 浏览器的地址栏中输入以下 URL(取自您向我们展示的网站),然后按 Enter
http://opendata.brussels.be/api/records/1.0/search/?dataset=associations-clubs-sportifs
看看它是如何返回大量带有许多括号和逗号的文本的?您基本上已经要求该站点给您一些数据,这是他们返回的响应(不同的浏览器工作方式不同 - IE 要求您将响应下载为 .json 文件)。您基本上已经调用了 API。
要更清晰地查看这些数据,请打开 Chrome 浏览器的开发者工具,然后输入以下 JavaScript 代码
var url = 'http://opendata.brussels.be/api/records/1.0/search/?dataset=associations-clubs-sportifs';
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onload = function() {
if (xhr.status === 200) {
// success
console.log(JSON.parse(xhr.responseText));
} else {
// error
console.log(JSON.parse(xhr.responseText));
}
};
xhr.send();
当您按下回车键时,会返回一个响应,说明“对象”。如果您单击箭头,您会看到这是我们刚刚看到的数据的更清晰版本 - 更易于人类阅读。
在这种情况下,我使用 JavaScript 来检索数据,但您可以使用任何您想要的代码。您可以继续使用 JavaScript 来破译数据、操作数据并将其推送到数据库中。
kintone 是一个在线云数据库,您可以在其中对其进行自定义以运行 JavaScript 代码,并将数据存储在他们的数据库中,这样您就可以在线存储数据,如下图所示。这只是您可以使用的数据库的一个示例。
还有其他云服务允许您将不同服务的 API 端点相互连接,例如 IFTTT 和 Zapier,但我不确定它们是否与开放数据连接。