data_source ={"servers":{"uat":{'list':[{"uat_1":'uat_1'},{'uat_2':'uat_2'}],"pkey":True,"user":"testval","pass":True},"dev":{'list_dic':[{"item_1":[{'x1':'x11','x_2':'x22'},{'x1_2':'x11','x_2_2':'x22'}]},{'item_2':2}],"pkey":True,"user":"testval","pass":True}}}deftraverse(data, path=None):ifnot path:
path =[]ifisinstance(data,dict):for key in data.keys():
local_path = path[:]
local_path.append({'type':"key",'value': key
})for b in traverse(data[key], local_path):yield b
elifisinstance(data,list):for item in data:
local_path = path[:]
local_path.append({'type':'index','value': data.index(item)})for b in traverse(item, local_path):yield b
else:yield path, data
s = traverse(data_source,)for _ in s:print(_)
t =[]for a in _[0]:if a['type']=='key':
t.append(a['value'])elif a['type']=='index':
t.append(str(a['value']))print(t, _[1])