python通过DictReader实现两个csv文件的映射查找lookup之代码详解
python里应用DictReader的实现匹配查找
需求简介
通过应用DictReader读取csv文件,实现通过一个CSV在另外个CSV里找到对应的解释,类似lookup。
数据内容
1 这里假定有员工数据emp.csv,但不知道字段的解释,数据内容见下:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 1980-12-27 800 20
7499 ALLEN SALESMAN 7698 1981-2-20 1600 300 302 有字段对应解释数据empcom.csv,内容见下:
name label
EMPNO 雇员的编号,由四位数字所组成
ENAME 雇员的姓名,由10位字符所组成
JOB 雇员的职位
MGR 雇员对应的领导编号,领导也是雇员
HIREDATE 雇员的雇佣日期
SAL 基本工资,其中有两位小数,五倍整数,一共是七位
COMM 奖金,佣金
DEPTNO 雇员所在的部门编号
需要得到emp.csv里每个记录和empcom.csv里的解释创新组成键值对。
代码解释
from csv import DictReader
def collookup():#通过DicReader加载emp.csv,此时EMPNO、ENAME、JOB都是键(key),"7369 SMITH"是值(value)empfile=DictReader(open('./data/emp.csv','rt',encoding='utf8'),delimiter='\t')##通过DicReader加载empcom.csv,此时name、label都是键(key),"EMPNO 雇员的编号,由四位数字所组成"都是值(value)empcomfile=DictReader(open('./data/empcom.csv','rt',encoding='utf8'),delimiter='\t')empcomdata = [d for d in empcomfile]new_rows=[]#通过enumerate遍历方便控制文件的行数,当前示例仅读取emp.csv里的第一行for num,empdic in enumerate(empfile):if num == 0:#对每一行遍历分别保留到键dkey和值dval里for dkey,dval in empdic.items():for empcomdic in empcomdata:#如果emp.csv里的键存在于empcomdic的值时的判断if dkey in empcomdic.values():#将empcomdic里的值和empdic里的值合成新的dic并追加到new_rowsnew_rows.append({empcomdic.get('label'):dval})return new_rowsif __name__ == '__main__':print(collookup())
结果
python通过DictReader实现两个csv文件的映射查找lookup之代码详解相关推荐
- java 文件下载详解_Java 从网上下载文件的几种方式实例代码详解
废话不多说了,直接给大家贴代码了,具体代码如下所示: package com.github.pandafang.tool; import java.io.BufferedOutputStream; i ...
- 怎么用python读取csv文件、并且是读取行-python读取csv文件指定行的2种方法详解...
csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格 就可以存储为csv文件,文件内容是: No.,Name,Age,Score 1,Apple, ...
- python读取csv文件的方法-python读取csv文件指定行的2种方法详解
csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格 就可以存储为csv文件,文件内容是: No.,Name,Age,Score 1,Apple, ...
- Python2写csv文件中文乱码问题及解决方法详解
导读 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode,这篇文章给大家介绍Python2写csv文件中文乱码问题及解决方法,感兴趣的朋友跟随小编一起看看吧 ...
- php csv文件的读取,写入,输出下载操作详解
2019独角兽企业重金招聘Python工程师标准>>> php对csv文件的读取,写入,输出下载操作. 代码: <?php $file = fopen('text.csv',' ...
- php中下载csv文件怎么打开,php对csv文件的读取,写入,输出下载操作详解
搜索热词 代码如下: PHP $file = fopen('text.csv','r'); while ($data = fgetcsv($file)) { //每次读取CSV里面的一行内容 //pr ...
- java播放wma格式的音频文件,两种可将WMA文件在iPhone上播放的方法详解
WMA是微软开发的一款音频数据压缩技术,也是现今使用非常广泛的音频格式之一.然而,由于它与苹果的iOS系统不兼容,所以该格式文件不能够在苹果系列数码产品如iPhone手机上播放.不过,只要有了方便快捷 ...
- python将两个csv文件按列合并
python panda 进行列合并 将两个csv 文件 按列合并 ![在]第一个csv文件(https://img-blog.csdnimg.cn/20191114205658445.jpg) 代码 ...
- python两个csv表数据合并_python – 根据列中的数据合并两个CSV文件
我有两个csv文件,如下所示. CSV1 data13 data23 d main_data1;main_data2 data13 data23 data12 data22 d main_data1; ...
最新文章
- Y15BeTa蜂鸣器唱歌程序-演奏版
- Qt在Windows下的三种编程环境搭建
- python画剖面图_如何创建Matplotlib图形与图像和剖面图相匹配?
- python修改第三方库重写_Python安装第三方库,切换镜像源
- Coursera自动驾驶课程第14讲:Linear and Nonlinear Kalman Filters
- gitignore不起作用
- 新俊飞六合一口红机完整源码
- 改变外观_“改”出来的精彩!盘点5种改变葫芦外观的技艺
- “不会Linux,怎么当程序员?”面试官:等着被淘汰吧!
- sqlserver事务怎么开启 怎么提交 怎么回滚
- 微信开发者工具如何使用SCSS和配置wxml文件高亮及格式化
- 长期主义:永远做你余生中最重要的事!
- Minimum Flips to Make a OR b Equal to c(C++ 或运算的最小翻转次数)
- 小米手机怎么设置来电铃声?超过90%的人都是这样设置的…
- Python程序员的浪漫-实现每天定时给Ta推送微信公众号消息提醒超详细教程
- Cisco路由器重要存储设备Flash和NVRAM
- 基于springmvc的Junit与Jmockit使用
- Java小试牛刀—数组
- SAP市场模拟使用手册
- 告别笨重卡慢的PyCharm,使用Nodepad++ python编程
热门文章
- VTK:点定位器可视化用法实战
- OpenCASCADE:Mac OS X平台使用Xcode构建OCCT
- wxWidgets:添加状态栏
- boost::mp11::mp_is_list相关用法的测试程序
- boost::mp11::mp_max_element_q相关用法的测试程序
- boost::geometry::model::d3::point_xyz用法的测试程序
- boost::coroutine模块实现不对称链的测试程序
- ITK:创建具有相关类ID的样本列表
- DCMTK:类OFList和OFListIterator的测试程序
- VTK:图片之DrawShapes