欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nodejs處理Json文件并將處理后的數(shù)據(jù)寫入新文件中

 更新時(shí)間:2022年10月21日 15:05:24   作者:@胡海龍  
這篇文章主要介紹了Nodejs處理Json文件并將處理后的數(shù)據(jù)寫入新文件中,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

處理Json文件并將處理后的數(shù)據(jù)寫入新文件

問(wèn)題描述

事情是這樣的,朋友讓我處理一個(gè)json文件并將處理后的數(shù)據(jù)寫入新文件。這個(gè)json文件的結(jié)構(gòu)如下:

[
?? ?{
? ? ? ? "head_img": "http://wx.qlogo.cn/mmhead/xxxxxxxxxxx",
? ? ? ? "nick_name": "xxxxxxx",
? ? ? ? "user_name": "",
? ? ? ? "wxid": "wxid_xxxxxxxxxxxx"
? ? },
? ? ...
]

這個(gè)json文件中的這個(gè)json數(shù)組大小是25w條數(shù)據(jù),現(xiàn)在他只想要wxid這個(gè)屬性的值,并且將它寫出到一個(gè)txt的文件中,沒(méi)5000個(gè)為一個(gè)txt文件,每個(gè)值為一行。也就是最后給他50個(gè)txt文件,每個(gè)里面有5000行wxid的值。

實(shí)現(xiàn)過(guò)程

解決問(wèn)題的方法有很多,可以用python、nodejs、Java等任何你熟悉的語(yǔ)言實(shí)現(xiàn),我這里使用nodejs來(lái)實(shí)現(xiàn)一下,因?yàn)樗?jiǎn)單并且不需要引入第三方的庫(kù)。

這里涉及到了文件的讀取和寫入,因此用到nodejs自帶的fs模塊。具體實(shí)現(xiàn)代碼如下:

const fs = require("fs")?? ?//引入fs模塊
const data = fs.readFileSync('test.json','utf8');?? ?//讀取json文件
let temp = JSON.parse(data)?? ?//將數(shù)據(jù)解析為json對(duì)象
let tempIndex = 0;?? ?//臨時(shí)索引,用來(lái)計(jì)數(shù)是否到達(dá)5000條
let tempFileCount = 1?? ?//臨時(shí)文件計(jì)數(shù),用于計(jì)數(shù)文件名,result1...result50
temp.forEach(element => {?? ?//遍歷json數(shù)組
? ? if(tempIndex<5000){?? ?//判斷是否小于5000,如果是則寫入當(dāng)前文件,這里使用的是追加的寫入方式
? ? ? ? fs.appendFileSync("result"+tempFileCount+".txt",element.wxid+'\r','utf8',function(err){},tempIndex++)
? ? ? ??
? ? }else{?? ?//當(dāng)tempIndex等于5000時(shí)寫入新的文件,并且將文件名計(jì)數(shù)加一
? ? ? ? console.log("create new file")
? ? ? ? tempFileCount++;
? ? ? ? fs.appendFileSync("result"+tempFileCount+".txt",element.wxid+'\r','utf8',function(err){},console.log(tempFileCount+': 開始寫入'))
? ? ? ? tempIndex = 0;
? ? }
});

用Nodejs解析json數(shù)據(jù)

nodejs是服務(wù)器端的javascript的處理平臺(tái)。json(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。我們?cè)趯懛?wù)端的程序時(shí)往往需要使用json來(lái)處理數(shù)據(jù)。

這里我們用一個(gè)簡(jiǎn)單的例子來(lái)演示如何用nodejs來(lái)處理json數(shù)據(jù)文件。

第一,我們需要在ubuntu14.04上安裝nodejs,我們可以使用如下命令:

$ sudo apt-get install nodejs

安裝完畢, 我們可以使用如下命令進(jìn)行測(cè)試:

$ nodejs -v
v0.10.25

第二,準(zhǔn)備一個(gè)測(cè)試json文件, test.json,內(nèi)容如下:

{
? "person": {
? ? "name": "wanger",
? ? "birth": "1999"
? }
}

第三,創(chuàng)建js腳本來(lái)解析json文件,main.js

#!/usr/bin/nodejs
var cwd = process.argv[1].substring(0, process.argv[1].lastIndexOf("/"));
var fs = require('fs');
?
function load(file, cb) {
? ? ? ? fs.readFile(file, function(err, data) {
? ? ? ? ? ? ? ? if (err)
? ? ? ? ? ? ? ? ? ? ? ? throw err;
? ? ? ? ? ? ? ? cb(JSON.parse(data.toString()));
? ? ? ? });
}
?
(function() {
? ? ? ? if (process.argv.length < 2) {
? ? ? ? ? ? ? ? console.log("usage\n\t" + process.argv[1] + " loadfile");
? ? ? ? ? ? ? ? return;
? ? ? ? }
? ? ? ? load(process.argv[2], function(obj) {
? ? ? ? ? ? ? ? console.log("%s\n", obj.person.name);
? ? ? ? ? ? ? ? console.log("%s\n", obj.person.birth);
? ? ? ? });
})();

第四,測(cè)試和運(yùn)行

$ ./main.js test.json
wanger
1999

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用NODE.JS中的流編寫工具是要注意的事項(xiàng)

    用NODE.JS中的流編寫工具是要注意的事項(xiàng)

    Nodejs讀寫流流的傳輸過(guò)程默認(rèn)是以buffer的形式傳輸?shù)?除非你給他設(shè)置其他編碼形式, 小伙伴可以參考下。
    2016-03-03
  • Node.js模擬發(fā)起http請(qǐng)求從異步轉(zhuǎn)同步的5種用法

    Node.js模擬發(fā)起http請(qǐng)求從異步轉(zhuǎn)同步的5種用法

    這篇文章主要介紹了Node.js模擬發(fā)起http請(qǐng)求從異步轉(zhuǎn)同步的5種方法,下面總結(jié)了幾個(gè)常見的庫(kù) API 從異步轉(zhuǎn)同步的幾種方法。需要的朋友可以參考下
    2018-09-09
  • Node.js常用工具之util模塊

    Node.js常用工具之util模塊

    util是一個(gè)Node.js核心模塊,提供常用函數(shù)的集合,用于彌補(bǔ)JavaScript的功能的不足,util模塊設(shè)計(jì)的主要目的是為了滿足Node內(nèi)部API的需求。下面這篇文章將詳細(xì)的介紹關(guān)于Node.js常用工具之util模塊的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-03-03
  • 三種Node.js寫文件的方式

    三種Node.js寫文件的方式

    這篇文章主要為大家詳細(xì)介紹了三種Node.js寫文件的方式,感興趣的小伙伴們可以參考一下
    2016-03-03
  • 前端Electron新手入門教程詳解

    前端Electron新手入門教程詳解

    這篇文章主要介紹了Electron新手入門教程詳解,首先圍繞Electron框架的關(guān)鍵知識(shí)點(diǎn)進(jìn)行詳細(xì)講解,然后對(duì)DEMO程序進(jìn)行分析,讓前端開發(fā)人員對(duì)使用Electron開發(fā)桌面應(yīng)用程序有一個(gè)初步的了解。,需要的朋友可以參考下
    2019-06-06
  • Linux CentOS系統(tǒng)下安裝node.js與express的方法

    Linux CentOS系統(tǒng)下安裝node.js與express的方法

    這篇文章主要給大家介紹了在Linux CentOS系統(tǒng)下安裝node.js與express的方法,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • node.js核心模塊有哪些

    node.js核心模塊有哪些

    這篇文章主要介紹了node.js核心模塊有哪些,對(duì)node.js感興趣的同學(xué),可以參考下
    2021-04-04
  • Node.js 深度調(diào)試方法解析

    Node.js 深度調(diào)試方法解析

    這篇文章主要介紹了Node.js 深度調(diào)試方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • node.js中的fs.rmdirSync方法使用說(shuō)明

    node.js中的fs.rmdirSync方法使用說(shuō)明

    這篇文章主要介紹了node.js中的fs.rmdirSync方法使用說(shuō)明,本文介紹了fs.rmdirSync方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • NodeJS 實(shí)現(xiàn)多語(yǔ)言的示例代碼

    NodeJS 實(shí)現(xiàn)多語(yǔ)言的示例代碼

    這篇文章主要介紹了NodeJS 實(shí)現(xiàn)多語(yǔ)言的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09

最新評(píng)論