このGist の1 行ツリーを使用して、Excel から簡単に情報を取得しています。サイトのツリーの例を次に示します。
def tree(): return defaultdict(tree)
taxonomy = tree()
taxonomy['Animalia']['Chordata']['Mammalia']['Carnivora']['Felidae']['Felis']['cat']
taxonomy['Animalia']['Chordata']['Mammalia']['Carnivora']['Felidae']['Panthera']['lion']
taxonomy['Animalia']['Chordata']['Mammalia']['Carnivora']['Canidae']['Canis']['dog']
そして、これを dicts に変換してきれいに印刷します。
def dicts(t):
try:
return dict((k, dicts(t[k])) for k in t)
except TypeError:
return t
明確化
ツリーからキーを返すにはどうすればよいですか? 具体的には、ツリー内のキーの最初の 3 つのレイヤーが取得され、リストに入れられます。例は次のとおりです。
('Animalia', 'Chordata', 'Mammalia','Plantae', 'Solanales', 'Convolvulaceae')
の
{'Animalia': {'Chordata': {'Mammalia': {'Carnivora': {'Canidae': {'Canis': {'coyote': {},
'dog': {}}},
'Felidae': {'Felis': {'cat': {}},
'Panthera': {'lion': {}}}},
'Cetacea': {'Balaenopteridae': {'Balaenoptera': {'blue whale': {}}}}}}},
'Plantae': {'Solanales': {'Convolvulaceae': {'Ipomoea': {'sweet potato': {}}},
'Solanaceae': {'Solanum': {'potato': {},
'tomato': {}}}}}}