在 nodejs 中转换 csv 时缺少标题

问题描述 投票:0回答:0

我有一个名为“foo.csv”的 csv 文件,其中包含以下数据

A,B,C
asia,west,4
us,east,5
asia,north,4

我在 nodejs 中编写了一个带有流的函数来处理将前两列与

-

合并的 csv
import fs from "fs";
import {parse} from "csv-parse";
import through2 from "through2";

const myTransform = (row) => {
    return {
        A: row.A + "-" + row.B,
        B: row.C
    }
}

fs.createReadStream("input.csv", {objectMode: true})
    .pipe(parse({columns: true}))
    .pipe(through2.obj(function(chunk, encoding, callback) {
        this.push(myTransform(chunk))
        callback()
    }))
    .pipe(through2.obj(function(chunk, encoding, callback) {
        this.push(Object.values(chunk).join(",")+"\n")
        callback()
    }))
    .pipe(fs.WriteStream("output.csv"));

我在

output.csv
中得到正确的输出如下

asia-west,4
us-east,5
asia-north,4

这显然错过了标题,但我怎样才能修改上面的代码以包含标题?

此外,根据他们的

documentation
,我可以删除throught2的用法吗,我认为这是可能的,但我不知道怎么做!!

node.js csv stream node-streams
© www.soinside.com 2019 - 2024. All rights reserved.