当CSV太大时,CSV-to-JSON npm包失败



我使用这个包将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)
})

最新更新