Tag: csv

node.js使用lazyparsingcsv文件

我有以下的node.js代码: new lazy(fs.createReadStream('file.csv')) .lines .forEach(function(line){ console.log(line.toString()); }); 但是,我只能通过这种方式获取最后一行数据。 csv文件的内容如下所示: 123,破碎 12345,被盗 1234567,丢失 我在这里做错了什么? 我也有相同的文件这个代码: fs.readFile(req.files.file.path, 'utf8', function (err, data) { if (err) throw err; var lines = data.split(/\r?\n/); console.log(lines); }); 其中返回以下数组: [ '123,broken\r12345,stolen\r1234567,lost' ]

用头文件读取csv,然后使用node / grunt将每一行上传到couchdb

我想阅读一个CSV文件,并使用咕task任务将每一行上传到一个couchdb。 在这一点上,我还没有做任何数据库validation,如检查logging是否已经存在,但在某些时候也必须这样做。 目前这是我正在做的,问题是只有第65行,第一个子任务名为people正在上传到couchdb。 我知道这与asynchronous执行有关,但不能解决如何做到这一点 Gruntils.js csv2couch: { people: { db: 'http://localhost:5984/db', collectionName: 'person', src:['./data/schema3/people.csv'] }, organisms: { db: '<%= qmconfig.COUCHDBURL %>', collectionName: 'organism', src:['./data/schema3/organisms.csv'] } } csv2couch.js 'use strict'; var nanolib = require('nano'), csv = require('csv'), urls = require('url'), fs = require('fs'); module.exports = function(grunt) { grunt.registerMultiTask('csv2couch', 'Parse csv file and upload data to couchdb.', […]

NodeJs csv模块 – 暂停和恢复

我正在使用nodeJs csv模块来parsing一个10000logging大csv和每个logging即.on('logging',func),我必须执行一个耗时的逻辑。 但节点不会等到我完成。 我该如何处理? 文件谈到http://www.adaltas.com/projects/node-csv/暂停()和简历()。 但是我在哪里使用它? var csv = require('csv'); var fs = require('fs'); csv() .from.stream(fs.createReadStream(__dirname+'/sample.in')) .to.path(__dirname+'/sample.out') .transform( function(row){ row.unshift(row.pop()); return row; }) .on('record', function(row,index){ //Time consuming logic goes here }) .on('end', function(count){ console.log('Number of lines: '+count); }) .on('error', function(error){ console.log(error.message); });

使用CSV批量上传到Azure存储

我遇到了将大型csvfile upload到Azure的表存储的问题,因为它似乎是从数据stream中如此快速地传输数据,以至于无法正确上传或引发大量超时错误。 这是我现在的代码: var fs = require('fs'); var csv = require('csv'); var azure = require('azure'); var AZURE_STORAGE_ACCOUNT = "my storage account"; var AZURE_STORAGE_ACCESS_KEY = "my access key"; var tableService = azure.createTableService(AZURE_STORAGE_ACCOUNT,AZURE_STORAGE_ACCESS_KEY); var count = 150000; var uploadCount =1; var counterror = 1; tableService.createTableIfNotExists('newallactorstable', function(error){ if(!error){ console.log("Table created / located"); } else { console.log("error"); } }); […]

无法使用asynchronous瀑布运行parse-csv函数

我试图请求一个URL,从它获得一个CSV文件,然后将该CSV变成JSON。 我正在使用请求 , asynchronous和csvparsing器 我有这个代码: var fs = require('fs'), async = require('async'), request = require('request'), csv = require('csv-parser'), fileUrl = 'http://forever.codeforamerica.org/fellowship-2015-tech-interview/Violations-2012.csv' var getData = function(cb){ request(fileUrl, function(err, response, body){ (err) ? cb(err) : cb(null, body); }) }; var parseCsv = function(csvData, cb){ var violations = []; fs.createReadStream(csvData) .pipe(csv()) .on('data', function(violation){ violations.push(violation) }) .on('end', function(){ cb(null, […]

node.js:将json数组转换为csv

我想在node.js中将元素的json数组转换为csv。 我发现了一些模块,像json2csv或json-csv,但他们不完整。 例如,json2csv只支持一个扁平结构,其中字段是json根的直接子对象,对于所有的json对象,这个模式也应该是相同的。 在我的情况下,我想要的。 我想我有一个像这样的对象的json数组: [{ “libelle”:“Projet 1”, “受益人”:“乐华先生”, “自然”:“诊断patrimoniaux”, “phasage”:“GLOBAL”, “预算”: [ {“status”:“BROUILLON”} ] “状态”:“BROUILLON” }, { “libelle”:“Projet 2”, “受益人”:“乐华先生”, “自然”:“诊断patrimoniaux”, “phasage”:“GLOBAL”, “状态”:“BROUILLON” }] 我想把它转换为CSV: “libelle”, “beneficiaire”, “自然”, “phasage”, “预算[0] .STATUS”, “状态” “Projet 1”,“Leroy先生”,“Diagnostic patrimoniaux”,“GLOBAL”,“BROUILLON”,“BROUILLON” “Projet 2”,“Leroy先生”,“Diagnostic patrimoniaux”,“GLOBAL”,“BROUILLON” 我正在寻找一个好的完整的节点模块来做到这一点。 如果不存在,我自己也会这么做。

如何处理在线CSV文件,如“http://…/data.csv?para1 = …&para2 = …”与节点js

我最近尝试使用节点js从其他networking收集一些数据,如雅虎财经,像这样的url之一“ http://real-chart.finance.yahoo.com/table.csv?s=AAPL&a=11&b=12&c= 1999&d = 01&e = 4&f = 2016&g = d&ignore = .csv “,如果我把这个URL放到浏览器中,popup窗口会被提示。 而在我的节点代码这个url将不会被发现。 var fs = require('fs'); var http = require('http'); var url = require('url'); var csv = require( "fast-csv" ); // var FILENAME = "file/table.csv"; var FILENAME = "http://real-chart.finance.yahoo.com/table.csv?s=AAPL&a=11&b=12&c=1999&d=01&e=4&f=2016&g=d&ignore=.csv"; function fast_csv_read(filename) { csv.fromPath(filename) .on("data", function(data){ console.log("current data: "); console.log(data); }) .on("end", function(){ […]

在.CSV中查找唯一值

我有一个吨的.CSV数据文件,我的意思是一个TON(8000万行)的数据。 数据全部在两列,如下所示: src | dst 123123 | 456456 321321 | 654654 987987 | 789789 123123 | 456456 等八千万行。 (注意:我知道分隔符应该是.CSV中的',',但在这种情况下是'|',文件扩展名仍然是.CSV) 我试图弄清楚如何编写一个程序来读取所有的数据,并在'src'字段中输出重复值的数量。 例如,在我的例子中,输出看起来像'123123:出现2次' 我已经尝试了几个解决scheme,最值得注意的是: 如果每行都包含不同数量的字段(数字相当大),如何正确读取CSV文件? 我写了一个循环来将'drc'中的'src'拆分成'newData'作为.CSV文件 //go through each line and split + link the data to src/dst data.forEach(function (line) { newData = line.split('|'); //note, split returns an array let src = newData[0]; //src from data.csv let […]

如何validationnode.js中的csv文件?

我有一个大的csv文件,我需要转换为json,然后将数据存储到neo4j。 我为node.js使用了csv-parser插件。 这工作正常,如果csv是有效的。 但是,如果它是无效的,那么neo4j中的数据将被加扰。 因此,我需要validation该文件,然后才能将其发送到我的数据库。 有没有现有的插件可用或有我自己的方式来validationCSV文件?

meteor/ Node.jsparsing大量的文件变得非常缓慢

我有大约1000个需要parsing的CSV文件。 每个包含约1000行,总计100万条logging。 数据需要转换,然后保存到数据库,这就是为什么我必须通过我的应用程序来做到这一点。 我的问题是parsing器在循环遍历文件时逐渐变慢,直到完成运行需要永久的时间。 这是如何设置的。 var files = [ file1Path, file2Path…. file1000Path ]; function parseFile(index) { var startTime = new Date().getTime(); var filePath = files[index]; var stream = fs.createReadStream(filePath); //parse using fast-csv npm module csv.fromStream(stream, { config }) .on('data', function (row) { transformAndSave(row); }) .on('end', function () { console.log( new Date().getTime() – startTime + " […]