Sorry für dumme Frage, aber was mache ich falsch?Löschen von Elementen aus verschachtelten dict rekursiv
Ich habe dict geschachtelt, was ich hoffte, in json zu entleeren.
[{'text': 'Root', 'children': [{'text': 'X', 'children': [None, None], 'id': 2}, {'text': 'Y', 'children': [], 'id': 3}], 'id': 1}]
Ich muss alle 'None' Werte von ihm entfernen. Hier ist mein Code:
for items in sub_tree_dicts:
del_null(items['children'])
def del_null(childrens):
for child in childrens:
if child is None:
childrens.remove(child)
else:
del_null(child['children'])
Leider Code funktioniert nicht wie erwartet, und entfernt nur erste ‚Keine‘ aus der Liste. Wo liege ich falsch?
Danke.
Ändern Sie kein Wörterbuch, während Sie dieses Wörterbuch durchlaufen. Dein 'childrens.remove (child)' bricht deine for-Schleife. – MCBama
Sie wissen, dass Sie die 'None' nicht entfernen müssen, wenn Sie in JSON konvertieren möchten, da' json.dumps() 'sie in' null' ändert ...? – mrCarnivore
@ juanpa.arrivillaga: Sie haben Recht. Ich habe meinen Kommentar korrigiert. – mrCarnivore