当 csv 太大时,CSV 到 JSON npm 包失败

CSV to JSON npm package is failing when csv is too big

我正在使用这个包将 csv 转换为 json,它只是给出我想要的确切输出:

https://www.npmjs.com/package/convert-json

const csvFilePath='/FileFolder/rf/input/InvoiceUploadAuto/SupplierTestRF/test.csv'
   var options = { header: true, delimiter: ';'};

   var cv2json = require('convert-json');
   var fs = require('fs');

   var csv_trans = cv2json.csv(csvFilePath, options , function (err, result) {


  console.log(result);
   });  

来自这个:

Kayit Tipi;Tedarikci Referans;Fatura Tarih;Odenecek Fatura Tutar;Para Birimi;Orj Vade Tarihi;Orj Fatura Tutar;Fatura No;Fatura Seri No;Belge Noter Yevmiye No;Hash Code;Fiili Vade Tarihi;Tedarikci VKN;Tedarikci Adi;Fatura Tipi;Alici IBAN;Alici VKN;Dosya Kayit Statu;Banka Kodu;Banka Sube No;Aciklama 1;Aciklama 2;Aciklama 3;
PO;obligor1;180419;500046;840;181218;500046;6200381352158587;R;;UXTrrywaeyasdAsfsYYYrwaawa0;;05890097865;SupplierTest;F;;9999987888;A;7999;;;;
PO;obligor1;180419;500046;840;181218;500046;6011931671080422;R;;UXTrrywaeyasdAsfsYYYrwaawa0;;05890097865;SupplierTest;F;;9999987888;A;7999;;;;
PO;obligor1;180419;500046;840;181218;500046;6304964161775736;R;;UXTrrywaeyasdAsfsYYYrwaawa0;;05890097865;SupplierTest;F;;9999987888;A;7999;;;;

为此:

[ { 'Kayit Tipi': 'PO',
    'Tedarikci Referans': 'obligor1',
    'Fatura Tarih': '180419',
    'Odenecek Fatura Tutar': '500046',
    'Para Birimi': '840',
    'Orj Vade Tarihi': '181218',
    'Orj Fatura Tutar': '500046',
    'Fatura No': '6200381352158587',
    'Fatura Seri No': 'R',
    'Belge Noter Yevmiye No': '',
    'Hash Code': 'UXTrrywaeyasdAsfsYYYrwaawa0',
    'Fiili Vade Tarihi': '',
    'Tedarikci VKN': '05890097865',
    'Tedarikci Adi': 'SupplierTest',
    'Fatura Tipi': 'F',
    'Alici IBAN': '',
    'Alici VKN': '9999987888',
    'Dosya Kayit Statu': 'A',
    'Banka Kodu': '7999',
    'Banka Sube No': '',
    'Aciklama 1': '',
    'Aciklama 2': '',
    'Aciklama 3': '' },
  { 'Kayit Tipi': 'PO',
    'Tedarikci Referans': 'obligor1',
    'Fatura Tarih': '180419',
    'Odenecek Fatura Tutar': '500046',
    'Para Birimi': '840',
    'Orj Vade Tarihi': '181218',
    'Orj Fatura Tutar': '500046',
    'Fatura No': '6011931671080422',
    'Fatura Seri No': 'R',
    'Belge Noter Yevmiye No': '',
    'Hash Code': 'UXTrrywaeyasdAsfsYYYrwaawa0',
    'Fiili Vade Tarihi': '',
    'Tedarikci VKN': '05890097865',
    'Tedarikci Adi': 'SupplierTest',
    'Fatura Tipi': 'F',
    'Alici IBAN': '',
    'Alici VKN': '9999987888',
    'Dosya Kayit Statu': 'A',
    'Banka Kodu': '7999',
    'Banka Sube No': '',
    'Aciklama 1': '',
    'Aciklama 2': '',
    'Aciklama 3': '' },
  { 'Kayit Tipi': 'PO',
    'Tedarikci Referans': 'obligor1',
    'Fatura Tarih': '180419',
    'Odenecek Fatura Tutar': '500046',
    'Para Birimi': '840',
    'Orj Vade Tarihi': '181218',
    'Orj Fatura Tutar': '500046',
    'Fatura No': '6304964161775736',
    'Fatura Seri No': 'R',
    'Belge Noter Yevmiye No': '',
    'Hash Code': 'UXTrrywaeyasdAsfsYYYrwaawa0',
    'Fiili Vade Tarihi': '',
    'Tedarikci VKN': '05890097865',
    'Tedarikci Adi': 'SupplierTest',
    'Fatura Tipi': 'F',
    'Alici IBAN': '',
    'Alici VKN': '9999987888',
    'Dosya Kayit Statu': 'A',
    'Banka Kodu': '7999',
    'Banka Sube No': '',
    'Aciklama 1': '',
    'Aciklama 2': '',
    'Aciklama 3': '' } ]

非常好...

但最大的问题是,如果我给它一个超过 600 行的 csv,它就会冻结!!这不是太大,我查看了这个包的源代码,它使用 fs.createReadStream 这应该不是问题。

可能是什么问题?是否有另一个包可以在没有此 csv 大小限制的情况下执行我想要的输出?

你可以试试 csvtojson

https://www.npmjs.com/package/csvtojson

示例代码:

const csv=require('csvtojson'),
  csvFilePath = 'csv file path'
csv({
  delimiter: ";"
})
.fromFile(csvFilePath)
.then((jsonObject)=>{ 
    console.log(jsonObject)
})