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

Posted

技术标签:

【中文标题】将 csv 转换为 JSON,并在文档顶部添加注释 (Node.js)【英文标题】:Convert csv to JSON with comments at the top of document (Node.js) 【发布时间】:2020-04-19 14:24:25 【问题描述】:

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

var csv = require("csvtojson");

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

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

# 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 已损坏:

有没有办法跳过/忽略这些注释行?我有很多 ov csv 文件,每个文件的前两行都有 cmets。

【问题讨论】:

好像可以先去掉再解析npmjs.com/package/csvtojson#hook--transform 您可以使用 CSV 文件线挂钩。检查文档 好的,我在文档中看到了 Hook & Transform,但我不知道用什么方法来删除/跳过行...有什么提示吗? 【参考方案1】:

您可以尝试在解析之前替换这些行(未测试):

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

【讨论】:

以上是关于将 csv 转换为 JSON,并在文档顶部添加注释 (Node.js)的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中将 JSON 转换为 XLS/CSV [关闭]

Pandas 将 CSV 列中的 '\0' 读取为 NULL 字符并在 JSON 中打印为 Unicode

如何从邮递员获取 CSV 文件并在 NestJs 上转换为数组

如何删除单引号,并在转换为to_json后将括号添加到pandas数据框中?

无法将 .json 文件从 CSV 下载到 JSON 转换并且无法将 JSON 转换为 CSV

csv转换obj