Как получить все ключи и значения во вложенном dict-of-dicts и dicts?
{'action_name':'mobile signup',
'functions':[{'name':'test_signUp',
'parameters':{'username':'[email protected]',
'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 : [email protected]
password : 12345
mobileLater: 123454231
mobile : 1e2w1e2w
card : 1232313
cardLater : 1234321234321
MOB_header : My stores
Ответы
Ответ 1
Вы можете использовать рекурсивную функцию для извлечения всех пар 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
Что-то в этом роде. Я пришел из фона С++, поэтому мне пришлось использовать google для всех синтаксисов.