python JSON only get keys in first level

TeNNoX picture TeNNoX · Apr 3, 2013 · Viewed 211.5k times · Source

I have a very long and complicated json object but I only want to get the items/keys in the first level!

Example:

{
    "1": "a", 
    "3": "b", 
    "8": {
        "12": "c", 
        "25": "d"
    }
}

I want to get 1,3,8 as result!

I found this code:

for key, value in data.iteritems():
    print key, value

But it prints all keys (also 12 and 25)

Answer

karthikr picture karthikr · Apr 3, 2013

Just do a 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
>>>

If you need a sorted list:

keylist = dct.keys()
keylist.sort()