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)
This question is related to
python
json
python-2.7
iterator
key
A good way to check whether a python object is an instance of a type is to use isinstance()
which is Python's 'built-in' function.
For 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
for key in data.keys():
print key
As Karthik mentioned, dct.keys()
will work but it will return all the keys in dict_keys
type not in list
type. So if you want all the keys in a list, then list(dct.keys())
will work.
Source: Stackoverflow.com