繁体   English   中英

python JSON只获取第一级的键

[英]python JSON only get keys in first level

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

例子:

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

我想得到1,3,8结果!

我找到了这个代码:

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

但它打印所有键(还有12 和 25

只需做一个简单的.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()
for key in data.keys():
    print key

正如 Karthik 所提到的, dct.keys()将起作用,但它将返回dict_keys类型而不是list类型中的所有键。 因此,如果您想要列表中的所有键,则list(dct.keys())将起作用。

检查 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM