programing

python JSON은 첫 번째 레벨에서만 키를 가져옵니다.

i4 2023. 3. 12. 10:25
반응형

python JSON은 첫 번째 레벨에서만 키를 가져옵니다.

나는 매우 길고 복잡한 json 오브젝트를 가지고 있지만, 나는 첫 번째 레벨의 아이템/키만 받고 싶어!

예:

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

결과적으로 1,3,8을 받고 싶다!

다음 코드를 찾았습니다.

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

단, 모든 키(1225)를 인쇄합니다.

간단한 작업만 하면 됩니다..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() # this is of type `dict_key`, NOT a `list`
keylist.sort()

간단한 리스트로 하고 싶은 경우는, 다음의 순서에 따릅니다.

list(dct_instance.keys())
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

언급URL : https://stackoverflow.com/questions/15789059/python-json-only-get-keys-in-first-level

반응형