Tengo un objeto json muy largo y complicado, ¡pero solo quiero obtener los elementos / claves en el primer nivel!
Ejemplo:
{
"1": "a",
"3": "b",
"8": {
"12": "c",
"25": "d"
}
}
Quiero tener 1,3,8 como resultado!
Encontré este código:
for key, value in data.iteritems():
print key, value
Pero imprime todas las claves (también 12 y 25 )
Respuestas:
Solo haz un simple
.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 >>>
Si necesita una lista ordenada:
fuente
for key in data.keys(): print key
fuente
Como mencionó Karthik,
dct.keys()
funcionará pero devolverá todas las claves endict_keys
tipo, no enlist
tipo. Entonces, si desea todas las claves en una lista, entonceslist(dct.keys())
funcionará.fuente
Una buena forma de comprobar si un objeto de Python es una instancia de un tipo es usar
isinstance()
cuál es la función 'incorporada' de Python. Para 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
fuente