Ich würde gerne ein Diktat durchlaufen, dessen Werte eine Mischung aus Listen, Unicode-Strings, Dicts, Bools und Ints sind, um ein eindimensionales Dict zu erzeugen, das alle Schlüssel-Wert-Paare hat . Es ist mir egal, Schlüssel zu erhalten, deren zugehörige Werte dicts sind.Dict mit gemischten Werten in Flat-Dict konvertieren
Ich habe eine rekursive Funktion versucht, aber mir fehlen einige Schritte. Vielleicht muss ich irgendwo .update()
oder +=
verwenden?
def unravel(data):
resultsdict = {}
for k in data:
if isinstance(data[k],dict):
unravel(data[k])
else:
resultsdict[k] = data[k]
Beispiel meiner Top-Level-dict Werte:
<type 'list'>
<type 'bool'>
<type 'dict'>
<type 'unicode'>
<type 'bool'>
<type 'unicode'>
<type 'dict'>
<type 'int'>
<type 'unicode'>
Es scheint jedes Mal, wenn Sie tauchen In dieser rekursiven Funktion setzen Sie das Wörterbuch mit resultsdict = {} zurück. Ich denke, das könnte ein Problem sein? – Adib
Also für jedes andere Diktat, das in Ihrem Dict enthalten ist, möchten Sie den Inhalt dieses Dikters bis zur Wurzelebene Ihrer Struktur verschieben? Z.B. '{'a': {'b': 'c'}, 'd': 'e'}' wird zu '{' b ':' c ',' d ':' e '} '? – poke
@Poke Sie sind richtig –