日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

python通过DictReader实现两个csv文件的映射查找lookup之代码详解

發(fā)布時(shí)間:2024/9/27 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python通过DictReader实现两个csv文件的映射查找lookup之代码详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

python里應(yīng)用DictReader的實(shí)現(xiàn)匹配查找

需求簡介

通過應(yīng)用DictReader讀取csv文件,實(shí)現(xiàn)通過一個(gè)CSV在另外個(gè)CSV里找到對應(yīng)的解釋,類似lookup。

數(shù)據(jù)內(nèi)容

1 這里假定有員工數(shù)據(jù)emp.csv,但不知道字段的解釋,數(shù)據(jù)內(nèi)容見下: 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 有字段對應(yīng)解釋數(shù)據(jù)empcom.csv,內(nèi)容見下: name??? label EMPNO?? 雇員的編號(hào),由四位數(shù)字所組成 ENAME?? 雇員的姓名,由10位字符所組成 JOB 雇員的職位 MGR 雇員對應(yīng)的領(lǐng)導(dǎo)編號(hào),領(lǐng)導(dǎo)也是雇員 HIREDATE??? 雇員的雇傭日期 SAL 基本工資,其中有兩位小數(shù),五倍整數(shù),一共是七位 COMM??? 獎(jiǎng)金,傭金 DEPTNO? 雇員所在的部門編號(hào)

需要得到emp.csv里每個(gè)記錄和empcom.csv里的解釋創(chuàng)新組成鍵值對。

代碼解釋

from csv import DictReader def collookup():#通過DicReader加載emp.csv,此時(shí)EMPNO、ENAME、JOB都是鍵(key),"7369 SMITH"是值(value)empfile=DictReader(open('./data/emp.csv','rt',encoding='utf8'),delimiter='\t')##通過DicReader加載empcom.csv,此時(shí)name、label都是鍵(key),"EMPNO 雇員的編號(hào),由四位數(shù)字所組成"都是值(value)empcomfile=DictReader(open('./data/empcom.csv','rt',encoding='utf8'),delimiter='\t')empcomdata = [d for d in empcomfile]new_rows=[]#通過enumerate遍歷方便控制文件的行數(shù),當(dāng)前示例僅讀取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的值時(shí)的判斷if dkey in empcomdic.values():#將empcomdic里的值和empdic里的值合成新的dic并追加到new_rowsnew_rows.append({empcomdic.get('label'):dval})return new_rowsif __name__ == '__main__':print(collookup())

結(jié)果

總結(jié)

以上是生活随笔為你收集整理的python通过DictReader实现两个csv文件的映射查找lookup之代码详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。