Nodejs处理Json文件并将处理后的数据写入新文件中

目录
  • 处理Json文件并将处理后的数据写入新文件
    • 问题描述
    • 实现过程
  • 用Nodejs解析json数据

处理Json文件并将处理后的数据写入新文件

问题描述

事情是这样的,朋友让我处理一个json文件并将处理后的数据写入新文件。这个json文件的结构如下:

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

这个json文件中的这个json数组大小是25w条数据,现在他只想要wxid这个属性的值,并且将它写出到一个txt的文件中,没5000个为一个txt文件,每个值为一行。也就是最后给他50个txt文件,每个里面有5000行wxid的值。

实现过程

解决问题的方法有很多,可以用python、nodejs、Java等任何你熟悉的语言实现,我这里使用nodejs来实现一下,因为它简单并且不需要引入第三方的库。

这里涉及到了文件的读取和写入,因此用到nodejs自带的fs模块。具体实现代码如下:

const fs = require("fs")    //引入fs模块
const data = fs.readFileSync('test.json','utf8');    //读取json文件
let temp = JSON.parse(data)    //将数据解析为json对象
let tempIndex = 0;    //临时索引,用来计数是否到达5000条
let tempFileCount = 1    //临时文件计数,用于计数文件名,result1...result50
temp.forEach(element => {    //遍历json数组
    if(tempIndex<5000){    //判断是否小于5000,如果是则写入当前文件,这里使用的是追加的写入方式
        fs.appendFileSync("result"+tempFileCount+".txt",element.wxid+'\r','utf8',function(err){},tempIndex++)
        
    }else{    //当tempIndex等于5000时写入新的文件,并且将文件名计数加一
        console.log("create new file")
        tempFileCount++;
        fs.appendFileSync("result"+tempFileCount+".txt",element.wxid+'\r','utf8',function(err){},console.log(tempFileCount+': 开始写入'))
        tempIndex = 0;
    }
});

用Nodejs解析json数据

nodejs是服务器端的javascript的处理平台。json(JavaScript Object Notation) 是一种轻量级的数据交换格式。我们在写服务端的程序时往往需要使用json来处理数据。

这里我们用一个简单的例子来演示如何用nodejs来处理json数据文件。

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

$ sudo apt-get install nodejs

安装完毕, 我们可以使用如下命令进行测试:

$ nodejs -v
v0.10.25

第二,准备一个测试json文件, test.json,内容如下:

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

第三,创建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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 浅谈NodeJs之数据库异常处理

    本文介绍了NodeJs之数据库异常处理,分享给大家,具体如下: NodeJs版本:4.4.4 数据库链接错误 使用nodejs处理异常最麻烦不过,这里我抛开nodejs提供的domain和一些第三方库专门处理的东西.操作数据库是我们常用的功能.通过回调,我们这里会有很多err出没. 如下: var pool = require('../db.js'); var runtimeLog = require('../log.js').getLogger('runlog'); var Promise =

  • nodejs后台集成ueditor富文本编辑器的实例

    UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码.. 1 下载ueditor nodejs版本 2 复制public目录下面的文件 到项目静态资源public文件夹下 3 在项目根目录创建ueditor文件夹 要复制进来的内容为 4 在根目录的 ueditor文件夹下执行 npm install 安装此目录下面package.json依赖的模块 5 项目根目录下创建 ue.js 代码部分来自于

  • Nodejs做文本数据处理实现详解

    目录 nodejieba 简介 特点 常用API 基本使用 1.分词用法 2.词性标注 3.关键词抽取 4.其他用法 nodejieba 简介 随着汉语言的广泛应用,中文信息处理成了一个重要的研究课题,常见于搜索引擎:信息检索.中外文自动翻译.数据挖掘技术.自然语言处理等领域.在处理的过程中,中文分词是最基础的一环. nodeJieba 是结巴中文分词的 Node.js 版本实现, 由 CppJieba 提供底层分词算法实现,是兼具高性能和易用性两者的 Node.js 中文分词插件. nodej

  • NodeJS实现图片文本分割

    本文实例为大家分享了NodeJS实现图片文本分割的具体代码,供大家参考,具体内容如下 var fs = require('fs'); var jpeg = require('jpeg-js') function getSumRGB(data, i) { var cr = data.data[i+0] var cg = data.data[i+1] var cb = data.data[i+2] var srgb = (cr+cg+cb) return srgb } function getTop

  • Nodejs处理Json文件并将处理后的数据写入新文件中

    目录 处理Json文件并将处理后的数据写入新文件 问题描述 实现过程 用Nodejs解析json数据 处理Json文件并将处理后的数据写入新文件 问题描述 事情是这样的,朋友让我处理一个json文件并将处理后的数据写入新文件.这个json文件的结构如下: [     {         "head_img": "http://wx.qlogo.cn/mmhead/xxxxxxxxxxx",         "nick_name": "x

  • python读文件保存到字典,修改字典并写入新文件的实例

    实例如下所示: tcode={} transcode={} def GetTcode(): #从文本中获取英文对应的故障码,并保存在tcode字典(故障码文本样例:oxff,0xff,0x00,0x01, "Fuel Volume Regulator Control Circuit High") with open('text_en.txt','r+')as fileone: for line in fileone.readlines(): if not line: continue

  • 使用ByteArrayOutputStream实现将数据写入本地文件

    目录 ByteArrayOutputStream将数据写入本地文件 那来了解一下ByteArrayOutPutStream吧 在表格输出时 FileOutputStream的写入方法 把读取的结果写入到ByteArrayOutputStream ByteArrayOutputStream将数据写入本地文件 在一个项目中做一次性校验部分,需要将校验后数据写入表格后上传.巧的是,服务器Down了.作为一个新手实习生菜鸟,为了测试自己的代码和输出结果有没有毛病,在大神同事的指点下选择了先将表格输出到本

  • 教你用python将数据写入Excel文件中

    目录 一.导入excel表格文件处理函数 二.创建excel表格类型文件 三.在excel表格类型文件中建立一张sheet表单 四.自定义列名 五.将列属性元组col写进sheet表单中 六.将数据写进sheet表单中 七.保存excel文件 附:Python读取Excel文件数据 总结 将数据写入Excel文件中,用python实现起来非常的简单,下面一步步地教大家. 一.导入excel表格文件处理函数 import xlwt 注意,这里的xlwt是python的第三方模块,需要下载安装才能使

  • 将pandas.dataframe的数据写入到文件中的方法

    导入实验常用的python包.如图2所示. [import pandas as pd]pandas用来做数据处理.[import numpy as np]numpy用来做高维度矩阵运算.[import matplotlib.pyplot as plt]matplotlib用来做数据可视化. pandas数据写入到csv文件中: [names = ['Bob','Jessica','Mary','John','Mel']]创建一个names列表[ births = [968,155,77,578,

  • pandas 把数据写入txt文件每行固定写入一定数量的值方法

    我遇到的情况是:把数据按一定的时间段提出.比如提出每天6:00-8:00的每个数据,可以这样做: # -*-coding: utf-8 -*- import pandas as pd import datetime #读取csv文件 df=pd.read_csv('A_2+20+DoW+VC.csv') #求'ave_time'这一列的平均值 aveTime=df['ave_time'].mean() #把ave_time这列的缺失值进进行填充,填充的方法是按这一列的平均值进行填充 df2=df

  • Python打开文件,将list、numpy数组内容写入txt文件中的方法

    python保存numpy数据: numpy.savetxt("result.txt", numpy_data); 保存list数据: file=open('data.txt','w') file.write(str(list_data)); file.close() 以上这篇Python打开文件,将list.numpy数组内容写入txt文件中的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python数据写入Excel文件中的实现步骤

    目录 一.导入excel表格文件处理函数 二.创建excel表格类型文件 三.在excel表格类型文件中建立一张sheet表单 四.自定义列名 五.将列属性元组col写进sheet表单中 六.将数据写进sheet表单中 七.保存excel文件 总结 将数据写入Excel文件中,用python实现起来非常的简单,下面一步步地教大家. 一.导入excel表格文件处理函数 import xlwt 注意,这里的xlwt是python的第三方模块,需要下载安装才能使用,不然导入不了(python第三方库的

  • C++文件的数据写入和文件的数据读取的方法实现

    目录 一:没有数据,准备数据,写入文件 二:读文件操作 一:没有数据,准备数据,写入文件 1.main.cpp #include<iostream> using namespace std; #include<fstream> #include<string> #include<list> #include"CData.h" #include"CStaff.h" int main() { CData::userInit

  • OpenCV中的cv::Mat函数将数据写入txt文件

    在使用opencv进行图像处理的过程中,经常会涉及到将文件中的数据读入到cv::Mat中,或者将cv::Mat中的数据写入到txt文件中. 下面就介绍一种我常用的将cv::Mat中的数据写入到txt文件中的方法,具体见代码: void writeMatToFile(cv::Mat& m, const char* filename) { std::ofstream fout(filename); if (!fout) { std::cout << "File Not Opene

随机推荐