深度遍历
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']))