{'action_name':'mobile signup',
'functions':[{'name':'test_signUp',
'parameters':{'username':'max@getappcard.com',
'password':'12345',
'mobileLater':'123454231',
'mobile':'1e2w1e2w',
'card':'1232313',
'cardLater':'1234321234321'}}],
'validations':[
{'MOB_header':'My stores'},
{'url':"/stores/my"}]}
我想获得所有钥匙和钥匙这个dict的值作为一个列表(它们是dict或array的值)
打印结果应该是这样的:
action name = mobile signup
name = test_signUp
username : max@getappcard.com
password : 12345
mobileLater: 123454231
mobile : 1e2w1e2w
card : 1232313
cardLater : 1234321234321
MOB_header : My stores
答案 0 :(得分:8)
您可能希望使用递归函数来提取所有key, value
对。
def extract(dict_in, dict_out):
for key, value in dict_in.iteritems():
if isinstance(value, dict): # If value itself is dictionary
extract(value, dict_out)
elif isinstance(value, unicode):
# Write to dict_out
dict_out[key] = value
return dict_out
这种东西。我来自C ++背景,所以我不得不谷歌所有的语法。
答案 1 :(得分:0)
有点晚了但是对于 python 3.8 你可以使用 yield from
def dictitems2list(d):
for k, v in d.items():
yield k
if isinstance(v, dict):
yield from get_all_items(v)
else:
yield v
all_itemt = list(dict2items(d))