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

Node.js讀取本地CSV文件并且寫(xiě)入為JSON格式文件過(guò)程

 更新時(shí)間:2026年01月22日 10:10:32   作者:小火車況且況且  
本文介紹了使用Node.js v14.18.1讀取CSV文件并處理中文亂碼的方法,包括使用`fs.readdirSync`讀取文件夾、`TextDecoder`處理編碼、以及如何解析和處理CSV數(shù)據(jù)
  • 使用的Node.js版本是v14.18.1
  • 使用的Node.js版本是v14.18.1
  • 使用的Node.js版本是v14.18.1

下面使用到的API都是基于目前版本

1. 格式

1.1 項(xiàng)目文件夾格式

1.2.CSV文件格式

2. 操作

  • fs.readdirSync('./static')用于讀取static文件夾下面的所有文件
  • dirs.filter(dir => /\.csv$/.test(dir)) 只需要以.csv結(jié)尾的文件
  • new TextDecoder('gbk').decode(file)因?yàn)?code>node不能識(shí)別中文字符, 使用該方法就可以處理中文亂碼問(wèn)題
  • .split('\r\n')進(jìn)行切割,就可以將每行數(shù)據(jù)分成一串字符串

  • getGBK[0].split(',') 獲取表頭, 用于組裝數(shù)據(jù)

  • if (childList.length === 1) break說(shuō)明該數(shù)據(jù)是空數(shù)據(jù)格式

外層循環(huán)時(shí),需要注意i=1開(kāi)始, 因?yàn)椴恍枰闅v表頭數(shù)據(jù)

完整代碼

const fs = require('fs')
const dirs = fs.readdirSync('./static')

dirs.filter(dir => /\.csv$/.test(dir)).forEach(dir => {
    const file = fs.readFileSync(`./static/${fileName}`)
  	const getGBK = new TextDecoder('gbk').decode(file).split('\r\n')
  	// 獲取表頭, 用于組裝數(shù)據(jù)
  	const headList = getGBK[0].split(',')
    const headLen = headList.length
    const gbkLen = getGBK.length
    // 遍歷文件, 注意是從 i = 1 開(kāi)始, 因?yàn)椴恍枰眍^
	for (let i = 1; i < gbkLen; i++) {
	    const gbkItem = getGBK[i]
	    const childList = gbkItem.split(',')
	    if (childList.length === 1) break // 說(shuō)明該數(shù)據(jù)是空數(shù)據(jù)格式
	    const obj = {}
	    // 遍歷表頭數(shù)組
	    for (let j = 0; j < headLen; j++) {
	      const headItem = headList[j]
	      obj[headItem] = childList[j]
	    }
	    json.push(obj)
	  }
	  // 得到不需要文件后綴的名稱
	  const getFile = fileName.split('.')[0]
	  // 寫(xiě)入文件數(shù)據(jù)
	  fs.writeFileSync(`./file/${getFile}.json`, JSON.stringify(json))
	})

最后結(jié)果

總結(jié)

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

相關(guān)文章

  • 服務(wù)端nodejs抓取jsonp接口數(shù)據(jù)實(shí)現(xiàn)示例

    服務(wù)端nodejs抓取jsonp接口數(shù)據(jù)實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了服務(wù)端nodejs抓取jsonp接口數(shù)據(jù)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • node+koa2+mysql+bootstrap搭建一個(gè)前端論壇

    node+koa2+mysql+bootstrap搭建一個(gè)前端論壇

    本篇文章通過(guò)實(shí)例給大家分享了用node+koa2+mysql+bootstrap搭建一個(gè)前端論壇的步驟,有需要的朋友參考下。
    2018-05-05
  • 基于Node實(shí)現(xiàn)可以操作MySQL的接口

    基于Node實(shí)現(xiàn)可以操作MySQL的接口

    這篇文章主要介紹了用Node寫(xiě)個(gè)可以操作MySQL的接口,以前也用Node寫(xiě)過(guò)接口,但不涉及數(shù)據(jù)庫(kù)操作,而我們發(fā)現(xiàn),后端寫(xiě)接口,基本都繞不開(kāi)數(shù)據(jù)庫(kù)操作,感覺(jué)不寫(xiě)一個(gè)能操作數(shù)據(jù)庫(kù)的接口,就不算真正意義上學(xué)會(huì)了寫(xiě)接口,那我們今天就學(xué)習(xí)一下,如何寫(xiě)一個(gè)可以操作數(shù)據(jù)庫(kù)的接口
    2024-05-05
  • nodejs中的http模塊與npm模塊使用

    nodejs中的http模塊與npm模塊使用

    這篇文章主要介紹了nodejs中的http模塊與npm模塊使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • node.js使用fs讀取文件出錯(cuò)的解決方案

    node.js使用fs讀取文件出錯(cuò)的解決方案

    在本篇文章里我們給大家?guī)?lái)一篇關(guān)于node.js使用fs讀取文件出錯(cuò)的解決辦法,有需要的朋友們參考下。
    2019-10-10
  • nvm版本導(dǎo)致npm?install報(bào)錯(cuò)Unexpected?token?'.'的解決辦法

    nvm版本導(dǎo)致npm?install報(bào)錯(cuò)Unexpected?token?'.'的解決辦法

    最近做項(xiàng)目遇到npm install 的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于nvm版本導(dǎo)致npm?install報(bào)錯(cuò)Unexpected?token?'.'的解決辦法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • package.json的版本號(hào)更新優(yōu)化方法

    package.json的版本號(hào)更新優(yōu)化方法

    這篇文章主要為大家介紹了package.json的版本號(hào)更新優(yōu)化方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Node.js express的基本使用詳解

    Node.js express的基本使用詳解

    Express是基于Node.js的輕量級(jí)Web框架,封裝了HTTP服務(wù)、路由管理、中間件等核心功能,簡(jiǎn)化了Web應(yīng)用和API開(kāi)發(fā),這篇文章給大家介紹Node.js express的基本使用,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • nodejs實(shí)現(xiàn)解析xml字符串為對(duì)象的方法示例

    nodejs實(shí)現(xiàn)解析xml字符串為對(duì)象的方法示例

    這篇文章主要介紹了nodejs實(shí)現(xiàn)解析xml字符串為對(duì)象的方法,涉及nodejs針對(duì)xml格式字符串的解析與轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • 運(yùn)行Node.js的IIS擴(kuò)展iisnode安裝配置筆記

    運(yùn)行Node.js的IIS擴(kuò)展iisnode安裝配置筆記

    這篇文章主要介紹了運(yùn)行Node.js的IIS擴(kuò)展iisnode安裝配置筆記,iisnode的擴(kuò)展可以把Node.js程序托管到IIS,托管之后也意味著可以使用IIS里面的各種功能,需要的朋友可以參考下
    2015-03-03

最新評(píng)論

马公市| 恩平市| 宣威市| 靖西县| 巴彦县| 梁山县| 肥东县| 德钦县| 翼城县| 张家口市| 永顺县| 富平县| 海晏县| 松原市| 南汇区| 平邑县| 上高县| 通城县| 石棉县| 卢氏县| 姜堰市| 江西省| 镇平县| 武义县| 左权县| 墨竹工卡县| 乐清市| 青河县| 牟定县| 上思县| 白山市| 梁河县| 桐庐县| 若羌县| 石狮市| 德惠市| 连州市| 和顺县| 新蔡县| 黄龙县| 新巴尔虎左旗|