【问题标题】:CSV to JSON npm package is failing when csv is too big当 csv 太大时,CSV 到 JSON npm 包会失败
【发布时间】:2018-12-25 17:39:54
【问题描述】:

我正在使用这个包将 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 大小限制的情况下执行我想要的输出?

【问题讨论】:

    标签: json node.js csv fs


    【解决方案1】:

    你可以试试 csvtojson

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

    示例代码:

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

    【讨论】:

    • @sam 如果解决了您的问题,请接受答案
    猜你喜欢
    • 2013-07-05
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多