Ich habe ein sehr langes und kompliziertes JSON-Objekt, aber ich möchte nur die Gegenstände / Schlüssel in der ersten Ebene erhalten!
Beispiel:
{
"1": "a",
"3": "b",
"8": {
"12": "c",
"25": "d"
}
}
Ich möchte 1,3,8 als Ergebnis erhalten!
Ich habe diesen Code gefunden:
for key, value in data.iteritems():
print key, value
Es werden jedoch alle Tasten gedruckt (auch 12 und 25 ).
Antworten:
Mach einfach ein einfaches
.keys()
>>> dct = { ... "1": "a", ... "3": "b", ... "8": { ... "12": "c", ... "25": "d" ... } ... } >>> >>> dct.keys() ['1', '8', '3'] >>> for key in dct.keys(): print key ... 1 8 3 >>>
Wenn Sie eine sortierte Liste benötigen:
quelle
for key in data.keys(): print key
quelle
Wie Karthik erwähnt hat,
dct.keys()
wird es funktionieren, aber es werden alle Schlüssel indict_keys
Typ und nicht inlist
Typ zurückgegeben. Wenn Sie also alle Schlüssel in einer Liste haben möchten,list(dct.keys())
funktioniert dies.quelle
Eine gute Möglichkeit, um zu überprüfen, ob ein Python-Objekt eine Instanz eines Typs ist, ist die Verwendung
isinstance()
der integrierten Python-Funktion. Für Python 3.6:dct = { "1": "a", "3": "b", "8": { "12": "c", "25": "d" } } for key in dct.keys(): if isinstance(dct[key], dict)== False: print(key, dct[key]) #shows: # 1 a # 3 b
quelle