使用csv-parse包解析csv Node.js

时间:2018-05-21 00:57:10

标签: javascript node.js csv

我用fs包读取csv文件并使用csv-parse解析结果。结果是这样的数组:

[ [ 'nama_venue\tketerangan' ],
  [ 'Ruang Kelas A1.1\truang_kelas' ],
  [ 'Ruang Kelas A1.2\truang_kelas' ],
  [ 'Ruang Kelas A1.3\truang_kelas' ],
  [ 'Ruang Kelas A1.4\truang_kelas' ],
  [ 'Ruang Kelas A1.5\truang_kelas' ],
  [ 'Ruang Kelas A1.6\truang_kelas' ],

当我想将数据插入db时,问题就出现了。 Coz mysql包需要像我的数组中的[[a, b], [b, c]]而不是[[a\tb],[b\tc]]这样的数组。怎么做谢谢。

2 个答案:

答案 0 :(得分:0)

假设您的数组名为array,请使用:

array.map(a => a.map(s => s.replace('\t', '')))

示例:



const array = [[ 'nama_venue\tketerangan' ],
  [ 'Ruang Kelas A1.1\truang_kelas' ],
  [ 'Ruang Kelas A1.2\truang_kelas' ],
  [ 'Ruang Kelas A1.3\truang_kelas' ],
  [ 'Ruang Kelas A1.4\truang_kelas' ],
  [ 'Ruang Kelas A1.5\truang_kelas' ],
  [ 'Ruang Kelas A1.6\truang_kelas' ]]
  
const array2 = array.map(a => a.map(s => s.replace('\t', '')))

console.log(array2)




答案 1 :(得分:0)

看起来您的csv解析器正在解析换行符,但不是制表符分隔符。你可以这样做:

parser(data, { delimiter : '\t' })

根据文档:

http://csv.adaltas.com/parse/

设置字段分隔符。仅限一个角色。默认为“,”(逗号)。