Tag: csv

如何使用Node.js正确地将对象数组转换为CSV文件?

我需要执行一个mongo查询并将结果转换为CSV文件。 我遇到了node-csv但我不知道如何将查询结果传递给这个模块来转换它,并实际上生成一个文件。 所以我读了这个(适应我的代码有点适合我的查询例子): var generate = require('csv-generate'); var generator = generate({objectMode: true, headers: 7}); var columns = { _id: '_id', first_name: 'first_name', last_name: 'last_name', team: 'team.name', position: 'position', status: 'status' }; var stringifier = stringify({ header: true, columns: columns }); generator.pipe(stringifier).pipe(process.stdout); 我做的查询如: Player.find({},{_id: true, first_name: true, last_name: true, "team.name": true, position: true, status:true}).exec(function (err,players){ // […]

转换CSV文件到JSON字典?

我需要将大型CSV数据集转换为JSON,但输出结果应该是这样的JSON字典: var products = { "crystal": { "description": "This is a crystal", "price": "2.95" }, "emerald": { "description": "This is a emerald", "price": "5.95" } }; 这就是CSV表格的样子: 我正在使用这里引用的脚本来生成JSON: var csv = require('csv') var fs = require('fs') var f = fs.createReadStream('Fielding.csv') var w = fs.createWriteStream('out.txt') w.write('['); csv() .from.stream(f, {columns:true}) .transform(function(row, index) { return (index === 0 […]

AWS Lambda中的stream转换会导致写入错误

我正在尝试使用Fastcsv nodejs包来转换CSV文件。 有趣的是,我的系统上的代码片段在本地很好地工作。 但是,如果我尝试将其与AWS lambda程序集成,则会提供写入错误。 var stream = fs.createReadStream(s3EventInfo.inputDownloadLoc) .pipe(csv.parse({headers: true})) //pipe the parsed input into a csv formatter .pipe(csv.format({headers: true})) //Using the transfrom function from the formatting stream .transform(function(row, next){ transformLine(row, next); }) .pipe(fs.createWriteStream(s3EventInfo.outputFileLoc)) .on("end", function(){ callback(); }); 这是aws日志中的错误.. Error: write after end at writeAfterEnd (_stream_writable.js:133:12) at PassThrough.Writable.write (_stream_writable.js:181:5) at write (_stream_readable.js:602:24) at flow […]

使用Nodejs的csvtojson转换会产生乱码数据

我想转换一个csv文件到json使用csvtojson转换器nodejs.My代码如下所示。 我得到如下所示的数据输出。 我不知道为什么会发生这种情况,以及如何防止这种情况发生。 var Converter = require("csvtojson").Converter; var fileStream = fs.createReadStream("input.csv"); var converter = new Converter({constructResult:false}); converter.on("end_parsed", function (jsonObj) { var jsonfile = require('jsonfile'); var file = 'output.json'; jsonfile.writeFile(file, jsonObj, function (err) { console.error(err); });}); fileStream.pipe(converter); {“\ \ \0000000000000000c \ \ u \ \:::::::::::::::::::::{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ u0000e \ u0000c \ u00000a \ u0000e \ u0000e \ u0000r […]

如何使用json2csv创build后下载CSV文件

我正在使用json2csv节点模块生成一个CSV文件,其中的数据写得非常好。 这是我的代码与我的数据创build一个CSV文件。 Lead.find({ownerId:owner._id}, function(err, data){ if(err){res.json(err)} else{ res.json(data); var fields = ['lead', 'salutation', 'fname','lname','title','email','mobile','rating','address','city','state','zcode','company','industry','empSize','lsource']; var csv = json2csv({ data: data, fields: fields }); var path='./public/csv/file'+Date.now()+'.csv'; fs.writeFile(path, csv, function(err,data) { if (err) {throw err;} else{ console.log('file Created'); //I need to download above creating csv file here } }); } }); 所以,现在我想知道如何在生成csv后下载创build的CSV文件。 我试过res.setHeader('Content-disposition', 'attachment; filename=data.csv'); res.set('Content-Type', 'text/csv'); […]

MongoDBtypes从NumberLong更新为String

我已经将CSV文件导入到我的mongodb中。 CSV有需要mongo分隔符,并从这个查询从MySQL数据库收到: SELECT * FROM csgo_users INTO OUTFILE 'b1.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; 此外,我试图从Sequel Pro接收CSV的导出function。 在我的csv中,我有17个字符长的字段。 在MySQL数据库中,该字段的types为VARCHAR,但包含17位数字。 在导入csv到mongo后,我得到了这个types为NumberLong字段,但我希望它是string 。 我已经尝试到目前为止: 将MySQL中的types从varchar更改为text 。 试图导入CSV附加标志 – –headerline和–columnsHaveTypes 此外,我试图添加单独的领域没有顶线,与标签 – –fields 。 尝试这样的命令: db.csgo_users.find({"steam_id": {$type: 18}}) .toArray() .map(function(v){ v.steam_id = new String(v); db.csgo_users.save(v) }) 或这个: db.csgo_users.find({"steam_id": {$type: 18}}) .toArray() .map(function(v){ v.steam_id […]

为什么将数据加载到Meteor Collection需要很长时间?

我正在尝试使用Meteor构build一个数据可视化应用程序来可视化大型数据集。 数据目前存储在CSV格式的数据文件中,大约为64MB。 我正在使用node-csv插件将此数据文件加载到Meteor集合(下面的代码)中。 但是,每10万条logging需要大约1分钟的时间,以这个速度大约需要1.5个小时才能将整个文件加载到集合中。 在此期间,Meteor服务器对Web请求没有响应。 这对我来说看起来exception缓慢。 这是正常的吗? meteor的目的不是为了处理大量的数据吗? 还是有更好的方式来做这个数据导入过程比我发现的方式? var csv = Meteor.require('CSV'); var fs = Meteor.require('fs'); var path = Npm.require('path'); function loadData() { var basepath = path.resolve('.').split('.meteor')[0]; console.log('Loading data into Meteor…'); csv().from.stream( fs.createReadStream(basepath+'server/data/enron_data.csv'), {'escape': '\\'}) .on('record', Meteor.bindEnvironment(function(row, index) { if ((index % 10000) == 0) { console.log('Processing:', index, row); } Emails.insert({ 'sender_id': row[0], 'recipient_id': […]

你如何streamcsv文件到节点的networking应用程序?

我刚刚在工作中接受了一个新项目。 这是一个内部ExpressJS应用程序,允许员工input数据。 有一个function,允许他们进入工资调整,但页面只允许他们一次input一个单一的调整,并提交。 他们需要批量上传function,以便他们可以上传包含数百个可能的调整的CSV文件。 我有function工作,但我正在使用的file upload中间件将文件放在一个临时目录。 我正在读取文件,parsing出调整项目,并将调整应用到工资核算数据库,然后从服务器中删除临时文件。 这一切都很好,但我真的很讨厌我正在做文件系统I / O,以及在parsing数据时将文件读入内存。 当我通过http学习更多关于传输数据的知识时,我意识到应该有可能将文件串stream并parsing这些项​​目。 如果是这样的话,我应该使用一个stream行的模块来达到这个目的吗? 什么是最简单的方法来将文件stream式传输到服务器并在运行中parsing它?

JSON转换为使用json2csv nodejs的CSV文件

我新学到了node.js,我想使用json2csv节点模块将JSON对象parsing为CSV文件。 json2csv只支持一个扁平结构,其中字段是json根的直接子项。 我发现如何parsingjson对象到csv文件使用json2csv节点jj模块主题和更改json2csv的createColumnContent函数来读取我的json文件的对象elemet。 但我的json文件有数组元素,是这样的: [ { "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] }, { "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 […]

Node.js用空白字段导入csv

我正在尝试使用csv-parse包导入&parsing一个CSV文件,但是在首先require csv文件时遇到困难。 当我做input = require('../../path-to-my-csv-file') 由于连续的逗号,我得到一个错误,因为有些字段是空的: e","17110","CTSZ16","Slitzer™ 16pc Cutlery Set in Wood Block",,"Spice up ^ SyntaxError: Unexpected token , 如何将CSV文件导入节点环境? 包示例在这里