将csv转换为JSON,并在文档顶部添加注释(Node.js)

时间:2019-12-30 22:43:48

标签: node.js json csv csvtojson

我正在使用NodeJS中的csvtojson库将csv文件转换为JSON。

var csv = require("csvtojson");

async function convert() {
    const jsonArray=await csv({delimiter:[";"]}).fromFile("file.csv");
    console.log(jsonArray);
}

问题是我的csv文件中的前两行包含注释(#):

# Version 1.00
#
freq[Hz];re:Trc1_S11;im:Trc1_S11;re:Trc2_S21;im:Trc2_S21;
2.400000000000000E+009;1.508471667766571E-001;1.125726923346520E-001;1.501466613262892E-004;-3.452933859080076E-003;
2.400166666666667E+009;1.506395637989044E-001;1.104702129960060E-001;1.065352989826351E-004;-3.356512635946274E-003;
2.400333333333334E+009;1.510340869426727E-001;1.083744764328003E-001;8.569851343054324E-005;-3.419617656618357E-003;
2.400500000000000E+009;1.511266380548477E-001;1.056981831789017E-001;7.480625936295837E-005;-3.567710286006331E-003;

由于前两行,返回的JSON已损坏:

enter image description here

是否可以跳过/忽略这些注释行?我有很多ov csv文件,每个文件的前两行都有注释。

1 个答案:

答案 0 :(得分:2)

您可以尝试在分析之前替换行(未经测试):

const jsonArray = await csv({delimiter:[";"]}).fromFile("file.csv")
                          .preRawData(csvRawData => csvRawData.replace(/^#.*\n/gm, ''));