【发布时间】:2021-04-19 19:58:56
【问题描述】:
我是使用 d3 和加载数据的新手,但我遇到了一个错误,我找不到任何解决方案。 我正在尝试一次读取几个 csv 文件,过滤它们,并允许它们稍后用于绘制我的图表。注意,下面的代码用数据文件名和变量名进行了简化。
Promise.all([
d3.dsv(";", "data/data1.csv"),
d3.dsv(";", "data/data2.csv"),
d3.dsv(";", "data/data3.csv"),
]).then(function(data) {
var var1 = data[0].filter(d => d => d.Date_statistics.includes("-2-"));
var var2 = data[1].filter(d => d => d.Municipality_name.includes("Amsterdam"));
var var3 = data[2].filter(d => parseInt(d["Total Population"]) > 50000);
console.log("result 1: ", var1)
console.log("result 2: ", var2)
console.log("result 3: ", var3)
}).catch(function(err) {
// handle error here
console.log(err)
});
我面临的问题是,当我将它添加到我的 js 文件中,并将它添加到我的 HTML 中时,控制台返回给我一个 GET 错误 404,未找到“data/data2.csv”(和 data3.csv 相同)。我不确定为什么会出现 404 错误,因为据我所知,我将数据正确加载为 csv,之后我尝试进行一些过滤以打印。
我尝试将放入的文件作为变量,并使用路径作为值,但这也不起作用。将所有 dsv 读取函数与它们各自的过滤和日志分开放置,而不是放在 Promise.all() 函数中,给我同样的结果,除了它现在确实打印的内容第一次过滤。
我解决问题的方式是否有问题(例如,我不应该在这里使用 Promise.all()),还是我遗漏了导致这些 404 错误的内容?
【问题讨论】:
标签: javascript csv d3.js