我的文本文件如下所示:
1. Apple
1.1. Apricot
1.2. Avocado
1.2.1. Banana
1.2.1.2. Blackberry
1.2.2. Boysenberry
1.3. Cherry
1.4. Dragonfruit
1.5. Plantain
1.5.1. Pear
1.5.1.1. Pomelo
等等。
我需要来自这个简单文本输入的带子/父元素的层次结构数组。
我坚持这一点,需要帮助。
答案 0 :(得分:0)
您可以将层次结构表示为python中的词典列表。列表是这样的:
[{'id': '1', 'parent': '0', 'name': 'Apple'},
{'id': '1.1', 'parent': '1', 'name': 'Apricot'},
{'id': '1.2', 'parent': '1', 'name': 'Avocado'},
{'id': '1.2.1', 'parent': '1.2', 'name': 'Banana'},
{'id': '1.2.1.2', 'parent': '1.2.1', 'name': 'Blackberry'},
{'id': '1.2.2', 'parent': '1.2', 'name': 'Boysenberry'},
{'id': '1.3', 'parent': '1', 'name': 'Cherry'},
{'id': '1.4', 'parent': '1', 'name': 'Dragonfruit'},
{'id': '1.5', 'parent': '1', 'name': 'Plantain'},
{'id': '1.5.1', 'parent': '1.5', 'name': 'Pear'},
{'id': '1.5.1.1', 'parent': '1.5.1', 'name': 'Pomelo'}]
这里,列表中的每个字典代表文本文件中的每一行。该行包含id,其父级和关联名称。
重现字典列表的代码(Stack.txt包含问题中的文本文件):
res = []
with open("Stack.txt","r") as fin:
for line in fin:
var = str(line)
var = var.rstrip('\n')
var = var.split(' ')
dic = {}
if var[0] == "1.":
dic["parent"] = "0"
dic["id"] = "1"
dic["name"] = var[1]
res.append(dic)
else:
temp = var[0][:-1]
id = temp[-1]
parent = temp[:-2]
id = parent + "." + id
dic["parent"] = parent
dic["id"] = id
dic["name"] = var[1]
res.append(dic)
fin.close()
for x in res:
print x