我已经在我的应用程序中存储了CSV文件。我想将其转换为对象数组。 我正在使用csv-parse。 https://www.npmjs.com/package/csv-parse
仅需要csv文件的错误消息
错误:
成分号,成分说明,周期数 ^
SyntaxError:无效或意外的令牌
const parse = require('csv-parse/lib/sync');
const assert = require('assert');
const router = require('express').Router();
const count = require("./csv/IngCountCycle.csv");
router.get('/', function () {
console.log("HI");
const input = `
"key_1","key_2"
"value 1","value 2"
`;
const records = parse(input, {
columns: true,
skip_empty_lines: true
});
console.log(records)
//output ([{key_1: 'value 1', key_2: 'value 2'}])
});
module.exports = router;
test.csv
Ingredient #, Ingredient Description, Cycle Count
1,GUACAMOLE,Annually,
2,GUACAMOLE,Period,
3,GUACAMOLE,Weekly,
4,GUACAMOLE,Custom
testParse.js
const parse = require('csv-parse/lib/sync');
const assert = require('assert');
const router = require('express').Router();
const count = require("./csv/IngCountCycle.csv");
router.get('/', function () {
const input = count;
const records = parse(input, {
columns: true,
skip_empty_lines: true
});
console.log(records)
});
module.exports = router;
答案 0 :(得分:0)
似乎CSVParse无法解释行分隔符。您能确认您使用的行分隔符受支持的选项之一是specified in the docs(检查选项record_delimiter
)吗?
然后,尝试明确说明所使用的分隔符,如下所示:
const records = parse(input, {
columns: true,
skip_empty_lines: true,
record_delimiter: "\n"
});
答案 1 :(得分:0)
第1、2和3行上有一个额外的(逗号),但第4行没有。您的标题行有3个逗号。您要么需要先清理数据,要么使用一些代码来弥补数据中的这种差异。