У меня очень длинный и сложный объект 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 >>>
Если вам нужен отсортированный список:
источник
for key in data.keys(): print key
источник
Как упоминал Картик,
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
источник