使用csv-parser只返回文件头

h7appiyu  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(89)

我正在查看NPM包csv-parser,它将csv文件解析为JSON。根据提供的示例,您可以按以下方式逐行读取csv文件:

fs.createReadStream('data.csv')
  .pipe(csv())
  .on('data', (rowData) => console.log(rowData))
  .on('end', () => { console.log("done reading the file") });

有没有什么方法可以只返回CSV文件的头值?

djmepvbi

djmepvbi1#

可以使用标头事件

fs.createReadStream('data.csv')
  .pipe(csv())
  .on('headers', (headers) => {
    console.log(`First header: ${headers[0]}`)
  })

来自官方文档

https://www.npmjs.com/package/csv-parser#headers-1

k0pti3hp

k0pti3hp2#

除了这个答案https://stackoverflow.com/a/66756097/12285424,如果你只需要读取头,你应该销毁读流,以阻止它解析整个文件,例如:

let myHeaders;
let readStream = fs.createReadStream('data.csv');
readStream
  .pipe(csv())
  .on('headers', (headers) => {
    console.log(`First header: ${headers[0]}`)
    myHeaders = headers;
    readStream.destroy();
  })
wsxa1bj1

wsxa1bj13#

https://github.com/mafintosh/csv-parser#headers-1
在分析标题行之后发出。事件回调的第一个参数是一个Array[String],其中包含头名称。
使用.on('headers', (headers)事件

fs.createReadStream('data.csv')
  .pipe(csv())
  .on('headers', (headers) => {
    console.log(headers)
  })

相关问题