node:json与csv互转
var fs = require('fs');
const Json2csvParser = require('json2csv').Parser;
const fields = ['car', 'price', 'color', 'for']; let myData = fs.readFileSync('./data.json'); const json2csvParser = new Json2csvParser({ fields }); const csv = json2csvParser.parse(JSON.parse(myData)); fs.writeFile("./data.csv", csv, function(err) {
if(err) {
return console.log(err);
} console.log("The file was saved!");
});
[
{
"car": "Audi",
"price": 40000,
"color": "blue",
"for": ""
}, {
"car": "BMW",
"price": 35000,
"color": "black",
"for": ""
}, {
"car": "Porsche",
"price": 60000,
"color": "green",
"for": ""
}
]
const csvFilePath = "./data.csv"
const csv=require('csvtojson');
var fs = require('fs'); csv()
.fromFile(csvFilePath)
.then((jsonObj)=>{
jsonObj = JSON.stringify(jsonObj)
fs.writeFile("./file/newData.json",jsonObj,'utf-8', function(err) {
if(err) {
return console.log(err);
} console.log("The file was saved!");
});
})
csv截图
优化:
【目录下多个文件转化】
let fs = require('fs');
const curDirPath = 'F:/json2CSV/00originJson';
const Json2csvParser = require('json2csv').Parser; fs.readdir(curDirPath, (err, files) => {
if(err) {
return console.log(err);
} files.forEach(file => { fs.readFile(curDirPath + `/${file}`, 'utf-8', (err, data) => {
if(err) {
return console.log(err);
} let keyArr = []; data = JSON.parse(data); for(let i in data) {
keyArr.push(Object.keys(data[i]));
} let keyArrSort = keyArr.sort((a, b) => {
return b.length - a.length
}) let fields = keyArrSort[0]; const json2csvParser = new Json2csvParser({ fields }); const csv = json2csvParser.parse(data); let csvFileName = file.replace(/\.{1}[a-z]{1,}$/, ".csv"); fs.writeFile(`./01csvFile/${csvFileName}`, csv, function(err) {
if(err) {
return console.log(err);
} console.log("The file was saved!");
}); });
});
});
const curDirPath = 'F:/json2CSV/01csvFile';
const csv=require('csvtojson');
let fs = require('fs'); fs.readdir(curDirPath, (err, files) => {
if(err) {
return console.log(err);
} files.forEach(fileName => {
csv()
.fromFile(`${curDirPath}/${fileName}`)
.then((jsonObj)=>{ jsonObj = JSON.stringify(jsonObj); let jsonFileName = fileName.replace(/\.{1}[a-z]{1,}$/, ".json"); fs.writeFile(`./02newJsonFile/${jsonFileName}`, jsonObj, 'utf-8', function(err) {
if(err) {
return console.log(err);
} console.log("The file was saved!");
});
})
});
});
node:json与csv互转的更多相关文章
- json对象字符串互转
json对象字符串互转 1.Node.js中 JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json ...
- [No00009A]JsonToObject json与类互转
using System.Web.Script.Serialization; /// <summary> /// 内部类,保存jsonData /// </summary> p ...
- ActiveReports 报表控件V12新特性 -- 新增JSON和CSV导出
ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...
- tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)
#tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', ...
- python将json转csv
现有一个需求要将json转成excel,使用python将其转为csv格式,使用excel打开即可. import json import csv import codecs f = open('te ...
- JavaScript json和字符串互转
JavaScript内置json和字符串互转的函数JSON,不需要引入外部组件 JSON.stringify(obj)将JSON转为字符串. JSON.parse(string)将字符串转为JSON格 ...
- solr6.6 导入 文本(txt/json/xml/csv)文件
参照:solr6.6 导入 pdf文件 重点就是三个配置文件 1.建立的data-config.xml 内容如下: <dataConfig> <dataSource name=&qu ...
- solr File Upload "Unsupported ContentType: application/vnd.ms-excel Not in: [application/xml, application/csv, application/json, text/json, text/csv, text/xml, application/javabin]",
今天在用solr管理界面导入文件时报错:"Unsupported ContentType: application/vnd.ms-excel Not in: [application/xm ...
- 最简单的JS实现json转csv
工作久了,总会遇到各种各样的数据处理工作,比如同步数据,初始化一些数据,目前比较流行的交互数据格式就是JSON,可是服务器中得到的JSON数据如果提供给业务人员看的话可能会非常不方便,这时候,转成CS ...
随机推荐
- Android带索引联系人列表
网上Android联系人列表的样例也非常多,都和微信的联系人差点儿相同,因为项目用到了联系人列表索引功能(产品把字母item给去掉了),只是也还是好实现.这里我也来分享分享我的实现,免得以后忘了.那先 ...
- Android——bootchart
bootchart:android原生自带的开机性能查看机制.通过收集android开机过程中的各种log数据,终于能够图表的形式展现各个进程在开机过程中的性能.(博客不能断-) 撰写不易,转载需注明 ...
- C语言之基本算法26—佩尔方程求解
//穷举法! /* ====================================================== 题目:求佩尔方程x*x-73*y*y=1的解. =========== ...
- ssh 免密及加密远程脚本实现
windows_host文件路径:C:\Windows\System32\drivers\etc ssh-copy-id -i ~/.ssh/id-rsa.pub root@xxxxxxx 免密验证操 ...
- JS的解析与执行过程—函数预处理
声明:之所以分为全局预处理与函数预处理,只是为了理解方便,其实在实际运行中二者是不分先后的. 函数预处理阶段与全局预处理的差别: 函数每调用一次,就会产生一个LexicalEnviroment对象,在 ...
- BZOJ3130: [Sdoi2013]费用流(二分,最大流)
Description Alice和Bob在图论课程上学习了最大流和最小费用最大流的相关知识. 最大流问题:给定一张有向图表示运输网络,一个源点S和一个汇点T,每条边都有最大流量.一个合法的网络 ...
- Tensorflow 函数学习笔记
A: A:## tf.argmax(A, axis).eval() 输出axis维度上最大的数的索引 axis=0:列,axis=1:行 A:## tf.add(a,b) 创建a+b的计算图 A:# ...
- 学习参考《矩阵分析与应用(第二版)张贤达》PDF
要想深入理解机器学习,或者对人工智能的某个领域有所研究,都必须掌握矩阵及其应用. 学习<矩阵分析与应用第2版>时,会发现总结了大量线性代数的知识,主要是给工科生用的.归纳了不少论文中的解法 ...
- LRJ入门经典-0903切蛋糕305
原题 LRJ入门经典-0903切蛋糕305 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 如图所示有一个矩形蛋糕,上面划分成 ...
- 【hiho39】二分·归并排序之逆序对
近期申请了微软的暑假实习,4号就要在线笔试了,在线測试系统用的是http://hihocoder.com/,今天试手做了一道题. [题目] 原题链接:http://hihocoder.com/cont ...