본문 바로가기
파이썬

파이썬 Python의 중첩 된 JSON 사전 내에서 값 찾기

by º기록 2021. 1. 29.
반응형

다음 json에서 파이썬에서 "TEXT"값을 추출하고 싶습니다. 알 수없는 경우를 제외하고 모든 키는 일정합니다. Unknown은 "a6784t66"또는 "hobvp * nfe"와 같은 문자열 일 수 있습니다. 알 수없는 값은 알 수 없으며 각 json 응답에서 해당 위치에있을뿐입니다.

{
  "A": {
    "B": {
      "unknown": {
        "1": "F",
        "maindata": [
          {
            "Info": "TEXT"
          }
        ]
      }
    }
  }
}

한 줄 json

'{"A":{"B":{"unknown":{"1":"F","maindata":[{"Info":"TEXT"}]}}}}'

"텍스트"의 가치를 어떻게 얻을 수 있습니까? (json.loads로 json을로드하는 방법을 알고 있습니다.) ..하지만 "Text"값을 얻는 방법을 모르겠습니다. 감사.

(최고의 제목이 무엇인지 잘 모르겠습니다.)

 

해결 방법

 

약간 길지만 위의 예에서 :

In [1]: import json

In [2]: s = """   ...: {
   ...:   "A": {
   ...:     "B": {
   ...:       "unknown": {
   ...:         "1": "F",
   ...:         "maindata": [
   ...:           {
   ...:             "Info": "TEXT"
   ...:           }
   ...:         ]
   ...:       }
   ...:     }
   ...:   }
   ...: }"""

In [3]: data = json.loads(s)

In [4]: data['A']['B']['unknown']['maindata'][0]['Info']
Out[4]: u'TEXT'

기본적으로 각 중첩 사전의 값을 가져 오기 위해 키를 전달하는 사전으로 취급합니다. 유일한 다른 부분은 결과 값이 목록 인 maindata 를 누를 때입니다. 이를 처리하기 위해 첫 번째 요소 [0] 를 가져온 다음 Info 키에 액세스하여 TEXT 값을 얻습니다.

unknown 이 변경되는 경우 코드에서 해당 시점에 사용할 '알려진'이름을 나타내는 변수로 바꿉니다.

my_variable = 'some_name'
data['A']['B'][my_variable]['maindata'][0]['Info']

실제로 처음에 귀하의 질문을 제대로 읽었을 경우 unknown 이 무엇인지 모르는 경우 다음과 같이 할 수 있습니다.

data['A']['B'].values()[0]['maindata'][0]['Info']

여기서 values ​​() 는 다음을 포함하는 변수입니다.

[{u'1': u'F', u'maindata': [{u'Info': u'TEXT'}]}]

[0] 로 액세스 할 수있는 단일 항목 목록이며 위와 같이 진행할 수 있습니다. 이것은 해당 사전에 하나의 항목 만 존재하는지 여부에 따라 달라집니다. 더 많은 항목이 있으면 약간 조정해야합니다.

 

참조 페이지 https://stackoverflow.com/questions/14227561

 

 

반응형

댓글