Ich habe folgende Daten von einem minimalen Spanning-Tree-Algorithmus erstellt:erstellen JSON Baum mit unbekannter Wurzel
links = [("Earl","Bob"),("Bob","Sam"),("Bob","Leroy"),("Leroy","Harry")]
Ich brauche die Daten in den folgenden json Baum zu konvertieren:
{
"id": "Earl",
"name": "Earl",
"children": [
{
"id": "Bob",
"name": "Bob",
"children": [
{
"id": "Leroy",
"name": "Leroy",
"children": [
{
"id": "Harry",
"name": "Harry"
}
]
},
{
"id": "Sam",
"name": "Sam"
}
]
}
]
}
Ich habe das folgende Skript, das funktioniert, außer dass es einen Stammknoten mit dem Namen 'Root' zum Baum hinzufügt, den ich nicht möchte:
Was ich brauche, ist nicht eine gefälschte 'Root' als Wurzelknoten hinzuzufügen. Die Wurzel sollte einfach ein beliebiger existierender Knoten in links
sein, der kein Elternteil hat (gemäß dem ersten json-Beispiel). Mit anderen Worten, die Wurzel des Baums muss nicht unbedingt Earl sein, es kann jeder der Knoten sein, die keine Eltern haben. Der Baum kann dann von dort aus expandieren.
Vielleicht gibt es einen besseren Algorithmus, um dies zu tun, anstatt zu versuchen, dies zu ändern?
tree = tree.children [0] Ergebnisse in: AttributeError: 'dict' Objekt hat kein Attribut 'children' – darkpool
ja Entschuldigung, habe die Python-Syntax etwas vergessen. 'tree = tree.get (" Kinder ") [0]' – exec