tree

将字典转为 tree 结构输出

1 tree data 要求

  • 字典最外层有且仅有 1 个 key,如 "root"

  • 字典中相关的 key 的 vlaue 为空字典或者是非字典时,均是叶子节点,若非字典时,则会按 key=value 输出

2 实践

#!/usr/bin/python
# coding=utf8
"""
# Description: tree demo

"""
from collections import OrderedDict as OD
from xlib.util.ascii_art import tree

tree_obj = tree.Tree()
# 有序字典
data = {
    'root': OD([
        ('sometimes', {'you': {}}),
        ('just',
            {'want': OD([
                ('to', {}),
                ('draw', {}),
            ])}),
        ('trees', {}),
        ('in', {
            'your': {
                'terminal': {}
            }
        })
    ])
}
"""
root
 +-- sometimes
 |   +-- you
 +-- just
 |   +-- want
 |       +-- to
 |       +-- draw
 +-- trees
 +-- in
     +-- your
         +-- terminal
"""
print(tree_obj(data))

# 普通字典
data = {
    "root": {
        "ceshi": {},
        "hello": {},
        "fxx": {"fff": {}}
    }
}
print(tree_obj(data))
"""
root
 +-- ceshi
 +-- hello
 +-- fxx
     +-- fff
"""
# 普通字典, 叶子节点含有数据
data = {
    "root": {
        "ceshi": {},
        "hello": {},
        "fxx": {"fff": "node_data"}
    }
}
print(tree_obj(data))
"""
root
 +-- ceshi
 +-- hello
 +-- fxx
     +-- fff=node_data
"""

Last updated