最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

問題描述

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

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

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

實現(xiàn)過程

解決問題的方法有很多,可以用python、nodejs、Java等任何你熟悉的語言實現(xiàn),我這里使用nodejs來實現(xiàn)一下,因為它簡單并且不需要引入第三方的庫。

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

const fs = require("fs")?? ?//引入fs模塊
const data = fs.readFileSync('test.json','utf8');?? ?//讀取json文件
let temp = JSON.parse(data)?? ?//將數(shù)據(jù)解析為json對象
let tempIndex = 0;?? ?//臨時索引,用來計數(shù)是否到達5000條
let tempFileCount = 1?? ?//臨時文件計數(shù),用于計數(shù)文件名,result1...result50
temp.forEach(element => {?? ?//遍歷json數(shù)組
? ? if(tempIndex<5000){?? ?//判斷是否小于5000,如果是則寫入當前文件,這里使用的是追加的寫入方式
? ? ? ? fs.appendFileSync("result"+tempFileCount+".txt",element.wxid+'\r','utf8',function(err){},tempIndex++)
? ? ? ??
? ? }else{?? ?//當tempIndex等于5000時寫入新的文件,并且將文件名計數(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的處理平臺。json(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。我們在寫服務(wù)端的程序時往往需要使用json來處理數(shù)據(jù)。

這里我們用一個簡單的例子來演示如何用nodejs來處理json數(shù)據(jù)文件。

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

$ sudo apt-get install nodejs

安裝完畢, 我們可以使用如下命令進行測試:

$ nodejs -v
v0.10.25

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

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

第三,創(chuàng)建js腳本來解析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);
? ? ? ? });
})();

第四,測試和運行

$ ./main.js test.json
wanger
1999

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

相關(guān)文章

  • node.js中使用q.js實現(xiàn)api的promise化

    node.js中使用q.js實現(xiàn)api的promise化

    這篇文章主要介紹了node.js中使用q.js實現(xiàn)api的promise化,promise一個標準,它描述了異步調(diào)用的返回結(jié)果,包括正確返回結(jié)果和錯誤處理,需要的朋友可以參考下
    2014-09-09
  • nodejs微信開發(fā)之授權(quán)登錄+獲取用戶信息

    nodejs微信開發(fā)之授權(quán)登錄+獲取用戶信息

    這篇文章主要介紹了nodejs微信開發(fā)之授權(quán)登錄+獲取用戶信息,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • Node.js實現(xiàn)大文件斷點續(xù)傳示例詳解

    Node.js實現(xiàn)大文件斷點續(xù)傳示例詳解

    這篇文章主要為大家介紹了Node.js實現(xiàn)大文件斷點續(xù)傳示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • node.js中的fs.read方法使用說明

    node.js中的fs.read方法使用說明

    這篇文章主要介紹了node.js中的fs.read方法使用說明,本文介紹了fs.read方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 詳解node單線程實現(xiàn)高并發(fā)原理與node異步I/O

    詳解node單線程實現(xiàn)高并發(fā)原理與node異步I/O

    本篇文章主要介紹了node單線程實現(xiàn)高并發(fā)原理與node異步I/O ,具有一定的參考價值,有興趣的可以了解一下
    2017-09-09
  • node.js中的path.join方法使用說明

    node.js中的path.join方法使用說明

    這篇文章主要介紹了node.js中的path.join方法使用說明,本文介紹了path.join的方法說明、語法、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 淺談node.js中間件有哪些類型

    淺談node.js中間件有哪些類型

    這篇文章主要介紹了node.js中間件有哪些類型,對中間件感興趣的同學,可以參考下
    2021-04-04
  • nodejs npm錯誤Error:UNKNOWN:unknown error,mkdir ''D:\Develop\nodejs\node_global''at Error

    nodejs npm錯誤Error:UNKNOWN:unknown error,mkdir ''D:\Develop\n

    今天小編就為大家分享一篇關(guān)于nodejs npm錯誤Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • React和Node.js快速上傳進度條功能實現(xiàn)

    React和Node.js快速上傳進度條功能實現(xiàn)

    這篇文章主要為大家介紹了React和Node.js快速上傳進度條功能實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Express服務(wù)器端代碼熱加載的實現(xiàn)代碼

    Express服務(wù)器端代碼熱加載的實現(xiàn)代碼

    這篇文章主要介紹了Express服務(wù)器端代碼熱加載的實現(xiàn),文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01

最新評論

望谟县| 海晏县| 淮南市| 浦城县| 化德县| 西峡县| 萝北县| 曲松县| 金昌市| 金溪县| 桂东县| 滁州市| 西贡区| 东至县| 霍邱县| 临澧县| 开封县| 浪卡子县| 彩票| 来安县| 方山县| 陈巴尔虎旗| 普兰县| 潢川县| 调兵山市| 定南县| 霞浦县| 闻喜县| 同仁县| 河源市| 城口县| 苏尼特左旗| 沁水县| 琼结县| 平潭县| 大方县| 巴南区| 临武县| 太保市| 合作市| 宁乡县|