Мне нужна помощь для построения иерархического вложенного dict из структуры QTreeView, чтобы получить что-то вроде этого:
{"A": {"B": {"H": {}, "I": {"M": {}, "N": {}}}, "D": {}, "E": {}, "F": {}, "G": {"L": {}}, "C": {"J": {}, "K": {}}}}
{
"A": {
"B": {
"H": {},
"I": {
"M": {},
"N": {}
}
},
"D": {},
"E": {},
"F": {},
"G": {
"L": {}
},
"C": {
"J": {},
"K": {}
}
}
}
Я не использую столбцы в этом случае, и QTreeView представляет структуру каталогов (я фактически извлек)это от dict как тот выше и просто хочу воссоздать dict после модификации Дерева)
У меня уже есть кое-что как это:
def to_dict(self, _structure={}, _parent=''):
sublist[self.name()] = self._children
for child in self._children:
_structure[self.name()] = sublist
child.to_dict(_structure, self.name())
Очевидно, что self._children - списоктак что это не будет работать
РЕДАКТИРОВАТЬ: Я думаю, что мне может понадобиться что-то вроде этого:
def to_dict(self, _structure={}, _parent=''):
sublist = {self.name(): {}}
for child in self._children:
if _parent == '':
_structure = sublist
else:
_structure[_parent].update(sublist)
child.to_dict(_structure, self.name())
return _structure
Проблема здесь ... мне нужно найти ключ _parent в словаре _structure и какНасколько я понимаю, это всегда будет на самом низком уровне dict ... действительно ли мне нужно искать всю _структурную реплику каждый раз, когда я хочу добавить новый subdict к данному _parent или есть лучшее решение моей проблемы?