[英]Uploading And Reading CSV-Parse File
我正在嘗試使用Node CSV-Parser
讀取具有多個相同列的csv文件
'from' ' 'to' 'from' ' 'to' 'from' ' 'to'
'Germ' ' 'NL' 'Turk' ' 'US' 'Nile' ' 'BR'
'Germ' ' 'NL' 'Turk' ' 'US' 'Nile' ' 'BR'
'Germ' ' 'NL' 'Turk' ' 'US' 'Nile' ' 'BR'
'Germ' ' 'NL' 'Turk' ' 'US' 'Nile' ' 'BR'
以下是我的代碼:
req.file('ratefile').upload(function (err, uploadedFile) {
if (err) return ResponseService.json(500, err, 'Uploaded Failed');
console.log(uploadedFile.length) //
if (uploadedFile.length) {
rs = fs.createReadStream(uploadedFile[0].fd);
parser = parse({columns: true, trim: true}, function (err, data){
var record = {};
console.log(data);
_.forEach(data, function(datum, index){
var routeName = datum['from'] +"-"+ datum['to'];
console.log(routeName);
record.name = datum['from'] +"-"+ datum['to'];
record.to = datum['to'];
record.from = datum['from'];
});
return ResponseService.json(200, res, 'file successfully uploaded');
});
rs.pipe(parser);
} else {
return ResponseService.json(500, res, 'Please upload a file')
}
});
當我運行它時,它只是csv文件的最后一列。
'from' ' 'to'
'Nile' ' 'BR'
'Nile' ' 'BR'
'Nile' ' 'BR'
任何幫助,將不勝感激。 謝謝
它會解析成類似的東西
{
"from": "Germ",
"to" : "NL",
"from": "Turk",
"to" : "US",
...
}
當然它不是有效的JSON,看看重復的鍵。 因此,最后一個鍵值對實際上會覆蓋前一對。
在你的行
parser = parse({columns: true, trim: true}, function (err, data){
使用函數,或null
作為columns
值,如
parse({columns: null, trim: true}
並打印出解析后的結果,然后根據自己的需要進行修改。 它也可以使用function
,但我不太確定function
可以解決你的問題,因為它仍然會將你的單個csv行解析為單個object
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.