深度遍历

import json
result = []
def NBFS(dict_str:dict,target_list:[str]) -> [str]:
    '''
    输入dict类型的数据,已经对应的key,返回[str]
    '''
    x = ''
    try:        
        for i in range(len(target_list)):

            if isinstance(dict_str,dict):

                if dict_str[target_list[i]]:
                    dict_str = dict_str[target_list[i]]
                    if i < len(target_list)-1:
                        target = target_list[i+1:]
                    else:
                        result.append(dict_str)
                        break
                    if dict_str:
                        x if NBFS(dict_str,target) else None
                        if x:
                            result.append(x)
                        break
                    else:
                        print('else!!',dict_str)
            elif isinstance(dict_str,list):
                for i in range(len(dict_str)):
                    if isinstance(dict_str,list):
                        dict_str_sub = dict_str[i]
                        x if NBFS(dict_str_sub,target_list) else None
                        if x:
                            result.append(x)
                            continue
                    else:
                        x if NBFS(dict_str,target_list) else None
                        if x:
                            result.append(x)
                            break
                        else:
                            pass
            else:
                pass
            break
        return result
        
    except (IndexError,KeyError) :
        pass

json_str ={"code":"200","data":{"fdd":2,"qq":{"fdadfafd":[{"a":[{"name":"qqq","sex":"女","ff":1}],"pp":1},{"a":[{"name":"力求","sex":"女2","a":2222}],'pp':"www"}],"pp":111},"pp":"wwfder"}}
# json_str ={"code":1,"data":{"fdd":2,"qq":{"fdadfafd":[{"a":[{"name":"qqq","sex":"女","ff":1}],"pp":132}],"pp":111}}}
# json_str = {"code":200,}
# print(json_str['data'])
x = NBFS(json_str,['code'])
print(x[0])
# print(NBFS(json_str,['data','qq','fdadfafd','a','sex']))

  

posted @ 2019-03-06 23:24  turbolxq  阅读(136)  评论(0)    收藏  举报