我正在尝试获取此csv文件的特定部分,但无法正常工作。当我尝试将其拉出时,我得到了整个专栏。这是文件的样子以及我的代码:
Time,Day ahead forecast,Hour ahead forecast,Current demand
00:00,23307,22058,21942
00:05,21744,21822,21849
00:10,21744,21822,21908
00:15,21744,21822,21809
00:20,21744,21615,21736
00:25,21744,21615,21688
00:30,21744,21615,21563
00:35,21744,21371,21479
00:40,21744,21371,21378
00:45,21744,21371,21256
代码
const fs=require('fs')
const csv = require('csv-parser');
fs.createReadStream('demand.csv')
.pipe(csv())
.on('data', function(data){
try {
console.log(data.Time[1]);
}
catch(err) {
//error handler
console.log('error');
}
})
.on('end', function() {
//some final operation
});
输出为:
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
依次类推,直到到达CSV结束为止。
我尝试了几种不同的方法,但似乎没有任何效果。我是Java的新手,因此不胜感激。我需要的一个示例是可以拉到第3行第1列的东西。00:10作为输出。谢谢。
答案 0 :(得分:1)
问题是“ CSV”文件:您的屏幕截图显示您必须启用多个分隔符选项(逗号和制表符)才能使用导入工具。
尝试使用一个分隔符:逗号
Time,Day ahead forecast,Hour ahead forecast,Current demand
00:00,23307,22058,21942
00:05,21744,21822,21849
00:10,21744,21822,21908
00:15,21744,21822,21809
00:20,21744,21615,21736
00:25,21744,21615,21688
00:30,21744,21615,21563
00:35,21744,21371,21479
00:40,21744,21371,21378
00:45,21744,21371,21256
答案 1 :(得分:0)
似乎csv-parser
将csv解析为对象数组。
要访问第3行第1列,应为
console.log(data[3].Time);
数据是一个array
,每个元素对应一个“行”数据。因此要访问第3行,应为data[3]
等。
对象key
或csv
中每一列的列标题访问每个单独的“列”。
要访问带有空格的对象键,可以使用“括号”
console.log(data[3].['Day ahead forecast']);
答案 2 :(得分:0)
因此,该问题可能是由于没有持续性Time Day ahead forecast, Hour ahead forecast, Current demand.
您可以解决此问题,就像建议{s {1}}分开的@searlea。
这是一个可行的例子。