У меня есть словарь который который может менятся в размерах и количество вложенных в него других
словарей может брать разным.
arr = {
'1':{
'id': 1,
'name': 'test_1',
'child': {
'2':{
'id': 1,
'name': 'test_2',
'child': {
'3':{
'id': 3,
'name': 'test_3',
'child': {}
}
}
}
}
},
'4':{
'id': 4,
'name': 'test_4',
'child': {}
}
}
Но я не понимаю как создать цикл который выведет все значения в таком формате
<ul>
<ul>
<li>
test_1
</li>
<ul>
<li>
test_2
</li>
<ul>
<li>
test_3
</li>
</ul>
</ul>
</ul>
<ul>
<li>
test_4
</li>
</ul>
</ul>
Писать постояно
html = "<ul>"
for x in arr:
html = html + "<ul>"
val_1 = arr[x]['name']
html = html + "<li>" + val_1 + "</li>"
for y in arr[x]['child'] :
html = html + "<ul>"
val_2 = arr[x]['child'][y]['name']
html = html + "<li>" + val_2 + "</li>"
for b in arr[x]['child'][y]['child'] :
html = html + "<ul>"
val_3 = arr[x]['child'][y]['child'][b]['name']
html = html + "<li>" + val_3 + "</li>"
html = html + "</ul>"
html = html + "</ul>"
html = html + "</ul>"
html = html + "</ul>"
print(html)
Мне не подходит
Как в python решают такие задачи?
В качестве аналогии могу привести
get_comments() из wordpress.
Я не могу понять как у нее получается вкладывать комментарий в друг друга не зависимо от количества вкладывания. одним циклом
Единственное что у меня получается это
<ul>
<li>
test_1
</li>
<li>
test_2
</li>
<li>
test_3
</li>
<li>
test_4
</li>
</ul>