python 通过函数的使用,将字典的深度搜索化简(减少循环次数)

其中涉及一些条件的判断:

循环实现:(dict,sheet均为字典,主要是row是sheet字典中最底层列表的某一行数据,这大致是一个筛选数据的过程

            for key in dict.keys():
                if key=="日期":
                    dict[key].append(sheet[key])
                elif type(dict[key])!=type(dict):#如果dict[key]不是字典,那么说明它是存有数据的列表
                    dict[key].append(sheet[key][row])
                else:
                    for key2 in dict[key].keys():
                        if type(dict[key][key2])!=type(dict[key]):
                            dict[key][key2].append(sheet[key][key2][row])
                        else:
                            for key3 in dict[key][key2].keys():
                                dict[key][key2][key3].append(sheet[key][key2][key3][row])

函数实现:

        def updateDict(tmp, tmp_sheet):
            for key in tmp.keys():
                if type(dict) != type(tmp):
                    continue
                if type(tmp[key]) != type(tmp):
                    if key == "日期":
                        tmp[key].append(tmp_sheet[key])
                    else:
                        tmp[key].append(tmp_sheet[key][row])
                else:
                    updateDict(tmp[key], tmp_sheet[key])
        updateDict(dict,sheet)

 

posted @ 2019-08-09 11:43  淇实是我  阅读(431)  评论(0编辑  收藏  举报