web-dev-qa-db-ja.com

python JSONは最初のレベルでのみキーを取得します

私は非常に長くて複雑なjsonオブジェクトを持っていますが、最初のレベルでアイテム/キーを取得したいだけです!

例:

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

結果として1,3,8を取得したい!

私はこのコードを見つけました:

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

ただし、すべてのキーを出力します(12および25

63
TeNNoX

簡単な.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()
102
karthikr
for key in data.keys():
    print key
16
Frambot

pythonオブジェクトが型のインスタンスであるかどうかを確認する良い方法は、Pythonの「組み込み」関数であるisinstance()を使用することです。 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
1
Hafizur Rahman