python JSON只获取第一级的密钥

时间:2013-04-03 13:44:17

标签: python json python-2.7 iterator key

我有一个非常漫长而复杂的json对象,但我只想获得第一级的项目/键!

示例:

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

我希望得到 1,3,8

我找到了这段代码:

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

但它会打印所有键(同样 12和25

4 个答案:

答案 0 :(得分:94)

只需做一个简单的.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
>>>

如果您需要排序列表:

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

答案 1 :(得分:15)

for key in data.keys():
    print key

答案 2 :(得分:3)

正如Karthik所述,dct.keys()可以工作,但是它将返回dict_keys类型的所有键,而不是list类型的所有键。因此,如果您希望所有键都在列表中,那么list(dct.keys())将起作用。

答案 3 :(得分:1)

检查python对象是否是类型实例的一种好方法是使用isinstance(),这是Python内置的'功能。 对于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