上QQ阅读APP看书,第一时间看更新
004 使用嵌套字典拆分多个工作簿
此案例主要通过使用Python语言的嵌套字典,从而实现根据特定的分类原则将一个工作簿(的工作表数据)拆分成多个工作簿(的多个工作表数据)。当运行此案例的Python代码(A310.py文件)之后,将按照录取院校和专业分类,把“录取表.xlsx”文件的录取表数据拆分到各个录取院校(包含各个专业的多个工作表)工作簿(各个Excel文件)中,效果分别如图004-1和图004-2所示。
图004-1
图004-2
A310.py文件的Python代码如下:
在上面这段代码中,myDict={}表示创建空白字典,该空白字典最后将形成嵌套的字典,即在字典之中还有子字典。Python语言的嵌套字典格式如下:myDict={Parentkey1:{ChildKey1:ChildValue1},Parentkey2:{ChildKey2:ChildValue2}…},在此案例中,最后形成的嵌套字典(myDict)的内容如下:
{'北京大学':{'材料化学':[('北京大学','材料化学','李洪',738),('北京大学','材料化学','常 金龙',718),('北京大学','材料化学','李科技',712)],'金融学':[('北京大学','金融学','段成全', 722)]},'清华大学':{'环境工程':[('清华大学','环境工程','易来江',727)],'车辆工程':[('清华大 学','车辆工程','张振中',740),('清华大学','车辆工程','田彬',732)],'软件工程':[('清华大学',' 软件工程','陈吉文',718)]},'浙江大学':{'生物医学':[('浙江大学','生物医学','刘康华',695),(' 浙江大学','生物医学','黄明会',703),('浙江大学','生物医学','张华康',692)],'机械工程':[('浙 江大学','机械工程','辛国明',699),('浙江大学','机械工程','李建平',696)]},'武汉大学':{'口腔 医学':[('武汉大学','口腔医学','杜建国',701),('武汉大学','口腔医学','何友大',692)],'城乡规 划学':[('武汉大学','城乡规划学','万冬',701)]}}
在上面这个嵌套字典(myDict)中,“武汉大学”是父键,“口腔医学”是子键,“杜建国”这行数据是(可以有多个)子键值,其余以此类推。
此案例的源文件是MyCode\A310\A310.py。