日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2024/9/27 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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之代码详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。