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

news2024/11/25 3:44:27

最近发现做办公自动化表格匹配的时候还是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 csv

for 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.coloradmin.cn/o/684976.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

D351周赛复盘:美丽下标对数目(互质/数学运算)+数组划分若干子数组

文章目录 6466.美丽下标对数目思路互质的含义 python写法cpp写法 6910. 将数组划分成若干好子数组的方式思路完整版ans (ans * (ls[i 1] - ls[i]))含义重要问题1:为什么ls[i 1] - ls[i]能代表所有这两个1划分出来的子数组?重要问题2:为什么…

java 版本企业招标投标管理系统源码,多个行业+及时准确+全程电子化

计算机与网络技术的不断发展,推动了社会各行业信息化的步伐。时至今日,电子政务、电子商务已经非常普及,云计算、大数据、工业4.0、“互联网”等发展理念也逐步深入人心,如何将传统行业与互联网科技有效结合起来,产生1…

谷歌浏览器无法翻译成中文,谷歌翻译,最新(沉浸式翻译和划词翻译,chrome无法翻译,谷歌浏览器无法翻译此网页)

简介:谷歌浏览器自带的翻译功能,对我们来说用处很大,但有的时候突然就会变成“无法翻译此网页”,之前给大家提供过两种无法翻译此网页的解决方案,这次再给大家分享下两款别的翻译方法; 一、上次介绍&#x…

如何用ChatGPT使开发效率提高50%以上?

简介 ChatGPT是一个大型语言模型,由OpenAI开发。它被训练用于进行对话式交互,能够理解和生成自然语言文本。ChatGPT可以用于多种任务和场景,包括但不限于:智能助手、创意生成、语言学习、编程辅助等。ChatGPT的优势在于它的广泛知…

搭建个人音乐库-navidrome

文章目录 前言navidrome 服务搭建准备音乐材料客户端 前言 搭建个人音乐库。好玩而已。 没有做过多的筛选。在navidrome 和 koel 之间,选择了navidrome来搭建音乐库。 主要分为这几个步骤: 在服务器上搭建navidrome服务(web端)。准备音乐材料。手机上…

免费去除视频水印的几个方法!记得收藏好!

怎么去除视频水印?相信大家应该不难发现,现在很多网上的视频保存下来都会有水印,原本是想拿这些视频当作素材来使用,结果就是让人很苦恼,但其实我们可以借助记灵在线工具将它们的水印去掉,下面我给大家分享…

谷歌带走了我最爱的全文翻译,连夜找来1个复活方法和6个替代神器!

想必前段时间大家都被谷歌翻译退出中国的相关文章刷屏过了 虽然表面上谷歌官方给出的原因是中国用户太少、使用率太低了,所以才选择退出中国市场。但根据网上的猜测,更大的可能应该是因为给谷歌翻译接入的 googleapis.com 在9月28日因某种神秘力量而国内…

JVM原理简介

前言 JVM一直是java知识里面进阶阶段的重要部分,如果希望在java领域研究的更深入,则JVM则是如论如何也避开不了的话题,本系列试图通过简洁易读的方式,讲解JVM必要的知识点。 运行流程 我们都知道java一直宣传的口号是:…

应急响应篇之Linux入侵排查

0x00 前言 当企业发生黑客入侵、系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系 统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解决方案与防范措…

【CV】从分类到回归:常见算法评价指标,如ROC,MAP等

目录 分类问题准确率(Accuracy)精确率(Precision)召回率或真正率(Recall)假正率(False Positive Rate, FPR)特异性(Specificity)ROC曲线P-R曲线(精…

AI换脸背后的产业链详解,往后神仙姐姐背后有可能是......

近期在各大平台都可以看到换脸新闻,和大家分享一下最近让我心痛的一张图片 那除了大家用来恶搞之外,AI诈骗的新闻层出不穷。我们国内目前今天最大的是下面这起事件: 而国外,因为技术更加成熟一点,所以被诈骗的金额高达…

PostgreSQL修炼之道之数据库优化(十八)

12.1 数据库优化准则和方法 12.1.1 数据库优化准则 数据库优化的思路有很多种。比较常用的是下面两种优化思路。 第一种思路:有人说过,“The fastest way to do something is dont do it”,意思是说,“做得最快的方法就是不做”…

mysql 集群实验~~双主双从搭建

这里写目录标题 搭建mysql集群实现双主双从的同步一、部署环境1.1 分别安装mysql服务并设置域名解析 二、 配置双主MySQL服务器2.1由于是双主,所以master2是master1的从,同时master1又是master2的从所以都要开启二进制和中继日志2.2 重启服务2.3 测试双主…

医院云HIS:运维运营分系统功能简介

一、运维运营分系统简介 一级菜单包括:系统运维、综合监管、系统运营 系统运维包括二级菜单:环境管理、应用管理、菜单管理、接口管理、任务管理、配置管理 综合监管包括二级菜单:综合监管 系统运营包括二级菜单:机构管理、药…

【海明码】一题学会海明码!

一、详细步骤 1、海明码,也称汉明码 2、海明码数据码校验码 3、假设数据码为1100,有4位,即n4 4、由公式2^k>nk1,解得k3,即需3个校验码 5、校验按2^i(即2的i次幂,如1、2、4、8、16、32..…

2入门matlab图像处理图像的基本操作(matlab程序)

学习目标:学习关于图像的基本操作 代码及运行结果 %% 通过抖动来增强图像的色彩对比度 clear all; close all; Iimread(cameraman.tif); %读取灰度图像 BWdither(I); %通过抖动转换为二值图像来增强图像的色彩对比度 subplot(121); imshow(I); subplot(122);…

电气火灾监控系统行业技术应用现状

摘要:我国现有的电气火灾监控系统的应用效果不佳,为了让电气火灾监控系统的发展能满足现代化人们的需要,对此进行分析与研究。网络化时代的到来,电气火灾监控系统将顺应时代潮流,逐步实现系统的网络化、智能化、可视化…

神经网络原理(1)

眼下最热门的技术,绝对是人工智能。 人工智能的底层模型是"神经网络"(neural network)。许多复杂的应用(比如模式识别、自动控制)和高级模型(比如深度学习)都基于它。学习人工智能&a…

sql笛卡尔积和自然连接

SQL中的笛卡尔积 即AxB。可以简单理解为两个集合的乘积。 SQL语法 SELECT * FROM tb1 CROSS JOIN tb2; -- 等价于 SELECT * FROM tb1, tb2; -- 等价于 SELECT * FROM tb1 INNER JOIN tb2; -- 这是内连接**CROSS JOIN不能加ON。** 从行和列两个维度来观察上例笛卡尔积的结果集…

Mybatis源码分析_解析大流程梳理_补充 (4)

上一篇&#xff0c;我们这只是粗略的说了一下Mybatis的配置文件解析的大体流程。而这一篇针对上一篇进行补充。 1. <sql> 是如何解析的 我们经常会把一些公用的&#xff0c;重复出现的字段写在<sql>标签中&#xff0c;而通过上图&#xff0c;我们知道sqlElement是…