node:json与csv互转

摘要:
“);});})csv屏幕截图优化:文件目录屏幕截图jsonToCSV.jsletfs=require;constcurDirPath='F:/json2CSV/00originJson';constJson2csvParser=require.Parser;fs.readdir(curDirPath,(err,files)=˃{if(err){returnconsole.log(err;}files.forEach(file=˃{fs.readFile(curDirPath+`/${file}`,'utf-8',(错误,数据)=˃{if(错误){returnconsole.log(错误);}letkeyArr=[];data=JSON。解析(数据);for(letindata){keyArr.push(Object.keys(data[i]));}letkeyArrSort=keyArr.sort((a,b)=˃{returnb.length-a.length})letfields=keyArrSort[0];constjson2csvParser=newJson2csvParser({fields});constcsv=json2csvParser。解析(数据);letcsvFileName=文件.replace(/.{1}[a-z]{1,}$/,“.csv”);fs.writeFile(`./01csvFile/${csvFileName}`,csv,函数(错误){if(错误){returnconsole.log(错误);}console.log(“文件已保存!
【单个文件的转化】
 
1.安装json2csv模块将json转成csv
 
jsonToCSV.js
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!");
});
data.json
[
    {
      "car": "Audi",
      "price": 40000,
      "color": "blue",
      "for": ""
    }, {
      "car": "BMW",
      "price": 35000,
      "color": "black",
      "for": ""
    }, {
      "car": "Porsche",
      "price": 60000,
      "color": "green",
      "for": ""
    }
  ]
  
 
2.安装csvtojson模块将csv转成json
 
csvToJson.js
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截图

node:json与csv互转第1张

优化:

【目录下多个文件转化】

 文件目录截图
node:json与csv互转第2张
 
 
jsonToCSV.js
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!");
            });

        });
    });
});
csvToJson.js
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互转》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇thinkphp框架(已有模板和tp框架做结合)uni-app移动端开发中ios/安卓--坑和经验总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C语言两个libxml2库使用的问题

最近使用libxml2想做点东西,翻看一些example后还是有些疑问,去segmentfault问了下,感谢@pingjiang的热心解答,问题解决,记录如下 (一)如下是一个XML文件,p为根结点 <p> <one>1</one> <two>2</two> <th...

将字符串格式化为csv数据

fputcsv() 函数用于将数据格式为csv格式,以便写入文件或者数据库。 1.将字符串写入csv文件中 $test_array=array(array("111","sdfsd","sdds","43344","rrrr"),array("sssssssss","gdfgfd","232323","wwewe","dsfds"),array("fgf...

dva的effect那么难用,自己造一个轮子吧

背景 对于dva这个开发框架,国内从事react的前端工程师多半不会感到陌生,dva完善的开发体系和简单的api,让其被广泛运用到实际工作中。我所在的公司也是长期使用dva作为基础的开发框架,虽然好用,但是随着前端技术的飞速发展,dva似乎陷入停滞了,从npm官网上看其发版情况看,正式版本2.4.1是三年前发布的,最近一次是2.6.0-beta.22版本,...

node的安装和配置

一 . 直接安装node 1. http://nodejs.cn/download/ 根据自己的电脑选择适合的安装包 2.安装 , 无脑下一步 , 可以选择安装路径 , 但是一定要记住 . 3.命令行窗口输入 ' node ' 就进入node编辑界面 , 可以输入node命令了. 4.因为现在的node里集成了npm , 所以npm也一并安装好了 , 可...

python os.path模块常用方法详解:转:http://wangwei007.blog.51cto.com/68019/1104940

1.os.path.abspath(path)  返回path规范化的绝对路径。    >>> os.path.abspath('test.csv')  'C:\Python25\test.csv'    >>> os.path.abspath('c:\test.csv')  'c:\test.csv'    &g...

如何将Excel导入到Mysql数据库中

1.在mysql中建一张和Excel结构一样的表,或者修改excel信息,将excel的结构与mysql中table保持一致,包括字段名称。 2.利用mysql客户端工具navicat进行导入。 步骤: 1.在数据库中找到表,右键,点击“导入导出”  2.根据你要导入的文件类型,选择相关选项,然后下一步 3.选择excel文件存放位置,然后,选择里边的...