我有一个非常长且复杂的 json 对象,但我只想获取第一级的项目/键!
例子:
{
"1": "a",
"3": "b",
"8": {
"12": "c",
"25": "d"
}
}
我想得到1,3,8作为结果!
我找到了这段代码:
for key, value in data.iteritems():
print key, value
但它会打印所有键(也是12 和 25)
我有一个非常长且复杂的 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