Я хотел бы напечатать вложенный хэш в Python, начиная с этого:
example_dict = {
'key1' : 'value1',
'key2' : {
'key2a': 'value2a'
},
'key3' : {
'key3a': {
'key3aa': 'value3aa',
'key3ab': 'value3ab',
'key3ac': 'value3ac'
},
'key3b': [
'value3b1',
'value3b2'
]
},
}
примерно так:
key1 value1
key2 key2a value2a
key3 key3a key3aa value3aa
key3 key3a key3ab value3ab
key3 key3a key3ac value3ac
key3 key3b value3b1
key3 key3b value3b2
Я не очень знаком с Python, и после парычасы я все еще застрял.
Я сейчас работаю над этой функцией:
def recursive(src, res, line = ''):
if isinstance(src, dict):
for key, value in src.items():
line += str(' ' + key)
recursive(value, res, line)
elif isinstance(src, list):
for litem in src:
recursive(litem, res, line)
else:
line += str(' ' + str(src))
res.append(line)
Я пытаюсь добавить каждую строку в список, чтобы иметь возможность использовать его позже, но яЯ думаю, что у меня нет правильного подхода к моей общей переменной (строке), потому что при каждом dict рекурсивный вызов выполняется с еще одним ключом dict того же уровня глубины, поэтому я получил следующее:
key3 key3a key3aa value3aa
key3 key3a key3aa key3ac value3ac
key3 key3a key3aa key3ac key3ab value3ab
key3 key3a key3b value3b1
key3 key3a key3b value3b2
key3 key2 key2a value2a
key3 key2 key1 value1
Какой бы Pythonic способ сделать это?