首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >美女运营天天找我改配置,给她写了个脚本,终于安静了

美女运营天天找我改配置,给她写了个脚本,终于安静了

原创
作者头像
一起重学前端
修改2024-11-28 10:01:03
修改2024-11-28 10:01:03
2620
举报

“好事”文章推荐:《手写 vite-plugin 在新建文件时自动使用模版代码》

文章地址:https://cloud.tencent.com/developer/article/2471711

文章讲述了在项目中使用vite-plugin 快速生成定制的模版代码,一切的一切都是为了提高开发效率。大家可以学习借鉴下,万一能在开发的时候用到呢?

美女运营老师,天天找我改配置,给她写了个脚本,终于安静了

事情的起因是,加入到新的小组中,在开发低代码后台管理页面的需求,需要配置一些下拉选项,后端因为一些特殊的原因,没法提供api接口,所以需要前端写成配置选项。这样问题就来了,新增了选项,但是没有给前端配置。美女运营老师都会来找开发,说:为什么新导入的数据没有显示啊,是不是有bug。。找了一圈发现是配置没加

我让运营老师,把新增数据表格给我配置下,丢过来新增数据上来就是1000+,手动加要哭死。于是我就想能否用脚本生成一个。

刚开始借用在线CSV转换JSON

在线CSV转换JSON

把csv下载到本地,转换成json,返回数据倒是能返回,但是不符合运营老师的要求,key值需要是 key: ${data.value}-${data.key}

于是我就写了下面第一个简单版的node脚本

代码语言:js
复制
const fs = require('fs')
const csv = require('csv-parser');

const uidsfilePath = './uids.json';

const datas = [`复制生成的json数据`];
let newarr = [];
format(datas);

fs.writeFile(uidsfilePath, JSON.stringify(newarr), () => {
	console.log('done')
})

const format = (results) => {
	newarr = results.map(item => {
		return {
			label: `${item.value}-${item.key}`,
			value: item.value
		}
	})
}

okok 到这里可以生成了。但是把想把这个事情还给运营老师,嘿

于是我又在这个基础上加上了读取CSV文件,格式化数据,输出JSON文件

使用 csv-parser读取 csv文件

csv-parser 是一个为Node.js设计的高效且流线型库,专注于快速解析CSV数据。它旨在提供最小的开销,保持简单轻量,特别适配于Node.js的流处理。此库遵循RFC 4180标准,并通过csv-spectrum的酸性测试套件,确保了对各种CSV变体的广泛兼容性和正确性。性能方面,csv-parser在处理大文件时表现出色,无论是带引号还是不带引号的CSV数据。

快速使用csv-parser

开始使用csv-parser,首先确保你的环境中已安装Node.js。接着,通过npm安装

csv-parser:

代码语言:bash
复制
npm install csv-parser
示例代码
代码语言:js
复制
const fs = require('fs');
const parse = require('csv-parser'); 
fs.createReadStream('yourfile.csv') 
.pipe(parse({ headers: true })) 
.on('data', (row) => {
   console.log(row);  
}) 
.on('end', () => {
   console.log('CSV file successfully processed'); 
});

第二版脚本

直接获取csv文件,生成输出JSON

代码语言:js
复制
const fs = require('fs')
const csv = require('csv-parser');

const csvfilePath = './新增UID.csv';
const uidsfilePath = './uids.json';

const results = [];
let newarr = [];

fs.createReadStream(csvfilePath)
	.pipe(csv({ headers: true }))
	.on('data', (data) => {
		results.push(data);
	})
	.on('end',async () => {
		await format(results);
		fs.writeFile(uidsfilePath, JSON.stringify(newarr), () => {
			console.log('done')
		})
	});
const format = (results) => {
	newarr = results.map(item => {
		if(item._0 === 'key' || item._1 === 'value') {
			return {}
		}
		return {
			label: `${item._1}-${item._0}`,
			value: item._1
		}
	})
}

部分生成的数据

到这里又节省了一些时间,但是运营老师既不会安装node,也不会使用命令执行node CSVtoJSON.js,太复杂了不会弄。。。我说你提个需求吧,后面给您做成页面上传csv文件,返回JSON数据,点击一键复制好不好。

仅供娱乐,欢迎吐槽

未完待续,持续更新中...

感谢关注点赞评论~

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 美女运营老师,天天找我改配置,给她写了个脚本,终于安静了
    • 刚开始借用在线CSV转换JSON
    • 于是我就写了下面第一个简单版的node脚本
    • 使用 csv-parser读取 csv文件
      • 快速使用csv-parser
    • 第二版脚本
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档