Я думаю, вам придется пройтись по дереву и построить объект, который вы сериализуете, используя JSON.Я предполагаю, что ваше дерево ациклично, потому что иначе оно становится более сложным.Я не проверял это, но что-то вроде этого будет работать (если вы уверены, что у вас нет циклов):
def serialize_to_json(self):
return json.dumps(self.serializable_object())
def serializable_object(self):
"Recurse into tree to build a serializable object"
obj = {'name': self.name, 'children': []}
for child in self.get_children():
obj['children'].append(child.serializable_object())
return obj
(Не помню, если children_set
является правильнымспособ получить список детей. Пожалуйста, прокомментируйте, если это не так.)