У меня есть этот нелогич- текстового файла: (я не знаю, что вы называете это, а дерево?)Создание объекта JSON из текстового файла с закладками дерева
key1
subkey1
subkey2
choice1
key2
subkey1
subkey2
Я хочу, чтобы выглядеть следующим образом:
[
{
"text":"key1",
"children":[
{
"text":"subkey1",
children:[]
},
{
"text":"subkey2",
children:[
{
"text":"choice1",
"children":[]
}
]
},
]
},
{
"text":"key2",
"children":[
{
"text":"subkey1",
children:[]
},
{
"text":"subkey2",
children:[]
},
]
}
]
Это то, что Я делаю, я не понимаю, как вы получите дочерние элементы в родительском, и это должно быть в состоянии идти бесконечно глубоко.
import itertools
def r(f, depth, parent, l, children):
for line in f:
line = line.rstrip()
newDepth = sum(1 for i in itertools.takewhile(lambda c: c=='\t', line))
node = line.strip()
if parent is not None:
print parent, children
children = [{"txt":node, "children":[]}]
# l.append({"txt":parent, "children":children})
r(f, newDepth, node, l, children)
json_list = []
r(open("test.txt"), 0, None, json_list, [])
print json_list
Большое спасибо, thats perfect! – Harry