def tree(data, indent=0):
if isinstance(data, basestring):
print '{i}{d}'.format(i='-'*indent, d=data)
return
for key, val in data.iteritems():
if isinstance(val, dict):
print '{i}{k}'.format(i='-'*indent, k=key)
tree(val, indent + 1)
else:
print '{i}{k}:{v}'.format(i='-'*indent, k=key, v=val)
tree(mdr)
输出:
main
-sm
--lm
--testm
---test1:test
---test2:test
--l
来自控制台的输入(响应对此答案的评论):
>>> mdr = {'main': {'sm': {'testm': {'test1': 'test', 'test2': 'test'}, 'lm': {}, 'l': {}}}}
>>> def tree(data, indent=0):
if isinstance(data, basestring):
print '{i}{d}'.format(i='-'*indent, d=data)
return
for key, val in data.iteritems():
if isinstance(val, dict):
print '{i}{k}'.format(i='-'*indent, k=key)
tree(val, indent + 1)
else:
print '{i}{k}:{v}'.format(i='-'*indent, k=key, v=val)
>>> tree(mdr)
main
-sm
--lm
--testm
---test1:test
---test2:test
--l
>>>