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之代码详解相关推荐

  1. java 文件下载详解_Java 从网上下载文件的几种方式实例代码详解

    废话不多说了,直接给大家贴代码了,具体代码如下所示: package com.github.pandafang.tool; import java.io.BufferedOutputStream; i ...

  2. 怎么用python读取csv文件、并且是读取行-python读取csv文件指定行的2种方法详解...

    csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格 就可以存储为csv文件,文件内容是: No.,Name,Age,Score 1,Apple, ...

  3. python读取csv文件的方法-python读取csv文件指定行的2种方法详解

    csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格 就可以存储为csv文件,文件内容是: No.,Name,Age,Score 1,Apple, ...

  4. Python2写csv文件中文乱码问题及解决方法详解

    导读 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode,这篇文章给大家介绍Python2写csv文件中文乱码问题及解决方法,感兴趣的朋友跟随小编一起看看吧 ...

  5. php csv文件的读取,写入,输出下载操作详解

    2019独角兽企业重金招聘Python工程师标准>>> php对csv文件的读取,写入,输出下载操作. 代码: <?php $file = fopen('text.csv',' ...

  6. php中下载csv文件怎么打开,php对csv文件的读取,写入,输出下载操作详解

    搜索热词 代码如下: PHP $file = fopen('text.csv','r'); while ($data = fgetcsv($file)) { //每次读取CSV里面的一行内容 //pr ...

  7. java播放wma格式的音频文件,两种可将WMA文件在iPhone上播放的方法详解

    WMA是微软开发的一款音频数据压缩技术,也是现今使用非常广泛的音频格式之一.然而,由于它与苹果的iOS系统不兼容,所以该格式文件不能够在苹果系列数码产品如iPhone手机上播放.不过,只要有了方便快捷 ...

  8. python将两个csv文件按列合并

    python panda 进行列合并 将两个csv 文件 按列合并 ![在]第一个csv文件(https://img-blog.csdnimg.cn/20191114205658445.jpg) 代码 ...

  9. python两个csv表数据合并_python – 根据列中的数据合并两个CSV文件

    我有两个csv文件,如下所示. CSV1 data13 data23 d main_data1;main_data2 data13 data23 data12 data22 d main_data1; ...

最新文章

  1. Y15BeTa蜂鸣器唱歌程序-演奏版
  2. Qt在Windows下的三种编程环境搭建
  3. python画剖面图_如何创建Matplotlib图形与图像和剖面图相匹配?
  4. python修改第三方库重写_Python安装第三方库,切换镜像源
  5. Coursera自动驾驶课程第14讲:Linear and Nonlinear Kalman Filters
  6. gitignore不起作用
  7. 新俊飞六合一口红机完整源码
  8. 改变外观_“改”出来的精彩!盘点5种改变葫芦外观的技艺
  9. “不会Linux,怎么当程序员?”面试官:等着被淘汰吧!
  10. sqlserver事务怎么开启 怎么提交 怎么回滚
  11. 微信开发者工具如何使用SCSS和配置wxml文件高亮及格式化
  12. 长期主义:永远做你余生中最重要的事!
  13. Minimum Flips to Make a OR b Equal to c(C++ 或运算的最小翻转次数)
  14. 小米手机怎么设置来电铃声?超过90%的人都是这样设置的…
  15. Python程序员的浪漫-实现每天定时给Ta推送微信公众号消息提醒超详细教程
  16. Cisco路由器重要存储设备Flash和NVRAM
  17. 基于springmvc的Junit与Jmockit使用
  18. Java小试牛刀—数组
  19. SAP市场模拟使用手册
  20. 告别笨重卡慢的PyCharm,使用Nodepad++ python编程

热门文章

  1. VTK:点定位器可视化用法实战
  2. OpenCASCADE:Mac OS X平台使用Xcode构建OCCT
  3. wxWidgets:添加状态栏
  4. boost::mp11::mp_is_list相关用法的测试程序
  5. boost::mp11::mp_max_element_q相关用法的测试程序
  6. boost::geometry::model::d3::point_xyz用法的测试程序
  7. boost::coroutine模块实现不对称链的测试程序
  8. ITK:创建具有相关类ID的样本列表
  9. DCMTK:类OFList和OFListIterator的测试程序
  10. VTK:图片之DrawShapes