Python对csv文件一键多值保存为json本地文件再读取加速效率(3)

最近发现做办公自动化表格匹配的时候还是csv格式的文件最快、效率是最高的

今天接到一个需求就是大致内容之这样的

1、给我一张表格直邮一列A列,内容是运单号

2、需要用相同的单号去另外一张表格匹配数据

3、其实就是Excel中的常见的vlookup

但是想要匹配的表格有几十个,所以这样你还觉得用vlookup方便么

在这里插入图片描述

解决方案

1、将想要匹配的表格(Excel转换成CSV),如果你的表格本身就是csv可以跳过此步骤

文件夹【数据源】,作用:存放你想要转换csv的表格——请提前创建好

文件夹【数据源(csv)】,作用:存放你转换好之后的csv文件——请提前创建好

代码

import os,time
import pandas as pd  # 导入pands库
def xlsx2csv_mh():# 读取xlsx数据for f in os.listdir("./数据源/"):t1 = time.time()data = pd.read_excel("./数据源/" + f, index_col=0)  # 设置index_col=0,写入文件时第一列不会存在序列号data.to_csv("./数据源(csv)/" + f + '.csv', encoding='utf-8')  # 将数据写入csv文件print(f"{f}转换完成......")t2 = time.time()print(t2 - t1)xlsx2csv_mh()

2、 做匹配项,保存为json文件

我做的匹配项可一键多值,就是如:A列作为建:[B列+C列+D列。。。],以这样的形式

如图,我就想以C列为键,G列、I列、J列为值

在这里插入图片描述

读取上一步转换好csv的文件夹

list_a.append((row[2],row[6]+"="+row[8]+"="+row[9])),这行就是我做的列表,row[2]就是键,row[6]+“=”+row[8]+“=”+row[9],这个就是值,中间我用=等于号隔开了

文件夹【json文件】,作用:存放做好的json文件——请提前创建好

代码(接上一步):

import json
import os
from collections import defaultdict
import csvfor f in os.listdir('./数据源(csv)/')[:1]:list_a = []d = defaultdict(list)with open('./数据源(csv)/'+ f, newline='', encoding='utf-8') as csvfile:# 读取 CSV 文件内容reader = csv.reader(csvfile, delimiter=',', quotechar='"')# 遍历 CSV 文件中的每一行数据for row in reader:# 处理每一行数据# print(row)list_a.append((row[2],row[6]+"="+row[8]+"="+row[9]))for key, value in list_a:d[key].append(value)  # 省去了if判断语句with open(f"./json文件/{f}.json","w",encoding="utf-8") as f_w:f_w.write(json.dumps(d,ensure_ascii=False))print(f"{f},转换json成功")

查看做好的json文件

在这里插入图片描述

读取json,进行测试

代码

with open("./json文件/10月.xlsx.csv.json","r",encoding="utf-8")as f:res = json.load(f)print(res['SF16xxxxxxx'])

成功!!

在这里插入图片描述

好了,分享结束,希望能够帮助到你

更多关于办公自动化的知识,请关注我吧

更多关乎Excel操作请关注我的专栏吧

在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/614.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Python所写的Word助手设计

点击以下链接获取源码资源: https://download.csdn.net/download/qq_64505944/87959100?spm1001.2014.3001.5503 《Word助手》程序使用说明 在PyCharm中运行《Word助手》即可进入如图1所示的系统主界面。在该界面中,通过顶部的工具栏可以选择所要进行的…

Pytorch实现多GPU并行训练(DDP)

Pytorch实现并行训练通常有两个接口:DP(DataParallel)和DDP(DistributedDataParallel)。目前DP(DataParallel)已经被Pytorch官方deprecate掉了,原因有二:1,DP…

VisualStudio离线包制作

因为需要,需要制作VisualStudio离线包,之前尝试了很多的方案,均没有下载成功。今天偶然看到一个可行的方案,这里在这里分享下。 从微软官网下载VisualStudio离线包 1 下载安装文件 visualstudio官网 首先进入到官网中&#xff0…

最小二乘法的原理及实现

1.最小二乘法的原理及实现 笔记来源于《白话机器学习的数学》 1.1 最小二乘法的原理 预测一个变量 x x x与一个变量 y y y的关系 例如:广告费 x x x与点击量 y y y 用直线拟合数据 1.2 最小二乘法的实现 广告费x和点击量y,找到一条直线表达式&#x…

MySQL数据表查询

😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。 🎆学习格言:不读书的人,思想就会停止。——狄德罗 ⛪️个人主页:进入博主主页 🗼专栏系列:进入MySQL知识专…

每天一点Python——day43

#第四十三天字典的视图操作: ①keys()获取字典中所有的键 ②values()获取字典中所有的值 ③items()获取字典中所有的键值对#如图: #例:获取所有的键 a{哥哥:18,妹妹:16,姐姐:17}#字典创立 ba.keys()#获取后我们存在变量b中,右边的…

Vision Pro中VR游戏空间边界为3×3米圆形

6月25日青亭网报道,此前我们已经报道了苹果visionOS有三种应用类型:FullSpaces、Windows、Volume。其中FullSpaces是仅显示一款应用的类型,后两种为共享空间可多窗口、多应用显示。 在FullSpaces模式下,苹果的一份文档显示visionO…

Linux下 MHA故障切换 主从角色提升

目录 所有主机共同操作 manger操作 其他四台安装 搭建主从复制环境 nobe slave1 配置 slave2 slave3 配置 配置MHA环境 简述MHA: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由…

深入理解深度学习——Transformer:编码器(Encoder)部分

分类目录:《深入理解深度学习》总目录 相关文章: 注意力机制(AttentionMechanism):基础知识 注意力机制(AttentionMechanism):注意力汇聚与Nadaraya-Watson核回归 注意力机制&#…

【Logback技术专题】「入门到精通系列教程」深入探索Logback日志框架的原理分析和开发实战技术指南(下篇)

深入探索Logback日志框架的原理分析和开发实战技术指南&#xff08;下篇&#xff09; 根节点configuration包含的属性基本参数详解子节点介绍设置上下文名称<contextName>使用案例 设置变量属性值<property>获取时间戳字符串<timestamp>设置loggerroot根节点…

Jenkins 发送文件到远程服务器:Publish Over SSH 插件

Jenkins 发送文件到远程服务器&#xff1a;Publish Over SSH 插件 文章目录 Jenkins 发送文件到远程服务器&#xff1a;Publish Over SSH 插件一、Publish Over SSH 插件1、概述2、主要功能和特点3、插件主页4、安装 Publish Over SSH 插件5、配置远程主机 二、发送文件到远程主…

文本向量化

文章目录 文本的tokenization向量化1.one-hot编码2.word embedding3.API 文本的tokenization tokenization就是通常说的分词&#xff0c;分出的每一个词我们把它称为token。 常见的分词工具有很多&#xff0c;比如&#xff1a; jieba分词清华大学的分词工具THULAC 中文分词…