다음 응답을 위해 Python에서 JSON을 구문 분석 할 때 KeyError 받기

독재자

요약 :이 경우 JSON 응답을 구문 분석하고 [status of dynamicValue_GGG of payload] 값을 가져 오는 방법이 혼동되었습니다.

전체 질문 : 아래 Python 코드를 통해 REST API에 도달하면 다음과 같은 (정리 된) 응답이 표시됩니다.

응답 = requests.request ( "POST", url, data = payload, headers = headers) .json ()

{
    "payload": {
        "name": "asdasdasdasd",
        "dynamicValue_GGG": {
            "12345": {
                "model": "asad",
                "status": "active",
                "subModel1": {
                    "dynamicValue_67890": {
                        "model": "qwerty",
                        "status": "active"
                    },
                "subModel2": {
                    "dynamicValue_33445": {
                        "model": "gghjjj",
                        "status": "active"
                    },
                "subModel3": {
                    "dynamicValue_66778": {
                        "model": "tyutyu",
                        "status": "active"
                    }                   
                }
            }
        },
        "date": "2016-02-04"
    },
    "design": "asdasdWWWsaasdasQ"
}

을하면 type(response['payload'])' dict'가 표시됩니다.

이제 위의 응답을 구문 분석하고 특정 키와 값을 가져 오려고합니다. 문제는 "인덱스"를 사용하여 반복 할 수없고 "키"를 지정해야하지만 응답에 동적으로 생성되어 전송되는 특정 "키"가 있다는 것입니다. 예를 들어 " dynamicValue_GGG", " dynamicValue_66778"등의 status는 " "키 와 달리 정적이 아닙니다 .

다음과 같이 언급하여 성공적으로 구문 분석 할 수 있습니다.

print response['payload']['dynamicValue_GGG']['12345'][status]

이 경우 예상 출력 = ' active'를 얻습니다 .

그러나 ' dynamicValue_GGG' 에 대한 제어권이 없기 때문에 대신 다음과 같이 지정할 수있는 경우에만 작동합니다.

print response['payload'][0][0][status]

그러나 위의 줄은 KeyError: 0파이썬 코드가 실행될 때 " " 오류를 제공합니다 .

이 경우 색인뿐만 아니라 두 키의 힘을 사용할 수있는 방법이 있습니까?

페리 Boender

Python에서 사전에있는 값의 순서는 무작위이므로 인덱싱을 사용할 수 없습니다. 잠재적으로 재귀적일 수있는 모든 요소를 ​​반복하고 원하는 항목인지 테스트해야합니다. 예를 들면 :

def find_submodels(your_dict):
  for item_key, item_values in your_dict.items():
    if 'status' in item_values:
      print item_key, item_values['status']

    if type(item_values) == dict:
      find_submodels(item_values)

find_submodels(your_dict)

다음과 같이 출력됩니다.

12345 active
dynamicValue_67890 active
dynamicValue_66778 active
dynamicValue_33445 active

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JSON 파일을 구문 분석 할 때 KeyError를 얻기

분류에서Dev

RestTemplate에서받은 JSON 응답을 구문 분석 할 수 없습니다.

분류에서Dev

Java에서 객체를 생성하기 위해 JSON 문자열을 디코딩 할 때 구문 분석 문제

분류에서Dev

Lambda에서 응답을 받기 위해 API Gateway를 통해 이벤트에 대한 객체를 구문 분석 할 수 없습니까?

분류에서Dev

값 이름을 얻기 위해 Python에서 Alexa json 응답을 구문 분석하는 문제

분류에서Dev

JSON 응답을 구문 분석 할 때 특수 문자 유지

분류에서Dev

서버의 응답을 구문 분석 할 수 없음-Geocoder

분류에서Dev

Jmeter에서 json 응답을 구문 분석 할 수 없습니다.

분류에서Dev

Android에서 복잡한 JSON 응답을 구문 분석 할 수 없습니다.

분류에서Dev

Django에서 http 응답을 반환하기 위해 form.errors.as_json 사용 및 추가 구문 분석

분류에서Dev

JSON REST API 응답을 구문 분석 할 수 없습니다.

분류에서Dev

JSON 응답을 구문 분석 할 수 없습니다.

분류에서Dev

Python-PUT가 완료되기 전에 서버가 응답하면 HTTP 모듈이 응답을 구문 분석 할 수 없습니다.

분류에서Dev

Rubymine 2019.3에서 RuboCop 응답을 구문 분석 할 수 없습니다.

분류에서Dev

ember에서 API 응답을 구문 분석 할 수 없습니다.

분류에서Dev

지정해 SocketTimeoutException는 웹 사이트에서 JSON을 구문 분석 할 때

분류에서Dev

Python에서 XML을 구문 분석 할 때 ASCII 코덱이 인코딩 할 수 없음을 throw합니다.

분류에서Dev

Android 앱에서 다음 JSON 응답을 구문 분석하는 방법

분류에서Dev

PHP에서 JSON을 구문 분석 할 때 형제 값 가져 오기

분류에서Dev

XML 구문 분석을 시도 할 때 요소에 대해 null 가져 오기

분류에서Dev

Python에서 XML 구문 분석을 위해 ElementTree를 사용할 때 자식의 존재 확인

분류에서Dev

어떻게 해제의 XInclude에 XML을 구문 분석 할 때?

분류에서Dev

Python을 사용하여 boto3 클라이언트 json 응답을 구문 분석 할 수 없습니다.

분류에서Dev

특정 값을 찾기 위해 PHP에서 JSON을 구문 분석 할 수 없습니까?

분류에서Dev

Google Place JSON 응답을 구문 분석 할 수 없음-org.json.JSONException

분류에서Dev

AJAX 성공에서 JSON 응답을 받았지만 구문 분석이 아님

분류에서Dev

json_decode ()를 사용하여 JSON 웹 서비스 응답을 구문 분석 할 수 없습니다.

분류에서Dev

다른 목록 내에서 명명 된 JSON을 구문 분석 할 때 "연결된 어댑터 없음, 레이아웃 건너 뛰기"오류 발생

분류에서Dev

JAXB로 응답을 구문 분석 할 수 없습니다.

Related 관련 기사

  1. 1

    JSON 파일을 구문 분석 할 때 KeyError를 얻기

  2. 2

    RestTemplate에서받은 JSON 응답을 구문 분석 할 수 없습니다.

  3. 3

    Java에서 객체를 생성하기 위해 JSON 문자열을 디코딩 할 때 구문 분석 문제

  4. 4

    Lambda에서 응답을 받기 위해 API Gateway를 통해 이벤트에 대한 객체를 구문 분석 할 수 없습니까?

  5. 5

    값 이름을 얻기 위해 Python에서 Alexa json 응답을 구문 분석하는 문제

  6. 6

    JSON 응답을 구문 분석 할 때 특수 문자 유지

  7. 7

    서버의 응답을 구문 분석 할 수 없음-Geocoder

  8. 8

    Jmeter에서 json 응답을 구문 분석 할 수 없습니다.

  9. 9

    Android에서 복잡한 JSON 응답을 구문 분석 할 수 없습니다.

  10. 10

    Django에서 http 응답을 반환하기 위해 form.errors.as_json 사용 및 추가 구문 분석

  11. 11

    JSON REST API 응답을 구문 분석 할 수 없습니다.

  12. 12

    JSON 응답을 구문 분석 할 수 없습니다.

  13. 13

    Python-PUT가 완료되기 전에 서버가 응답하면 HTTP 모듈이 응답을 구문 분석 할 수 없습니다.

  14. 14

    Rubymine 2019.3에서 RuboCop 응답을 구문 분석 할 수 없습니다.

  15. 15

    ember에서 API 응답을 구문 분석 할 수 없습니다.

  16. 16

    지정해 SocketTimeoutException는 웹 사이트에서 JSON을 구문 분석 할 때

  17. 17

    Python에서 XML을 구문 분석 할 때 ASCII 코덱이 인코딩 할 수 없음을 throw합니다.

  18. 18

    Android 앱에서 다음 JSON 응답을 구문 분석하는 방법

  19. 19

    PHP에서 JSON을 구문 분석 할 때 형제 값 가져 오기

  20. 20

    XML 구문 분석을 시도 할 때 요소에 대해 null 가져 오기

  21. 21

    Python에서 XML 구문 분석을 위해 ElementTree를 사용할 때 자식의 존재 확인

  22. 22

    어떻게 해제의 XInclude에 XML을 구문 분석 할 때?

  23. 23

    Python을 사용하여 boto3 클라이언트 json 응답을 구문 분석 할 수 없습니다.

  24. 24

    특정 값을 찾기 위해 PHP에서 JSON을 구문 분석 할 수 없습니까?

  25. 25

    Google Place JSON 응답을 구문 분석 할 수 없음-org.json.JSONException

  26. 26

    AJAX 성공에서 JSON 응답을 받았지만 구문 분석이 아님

  27. 27

    json_decode ()를 사용하여 JSON 웹 서비스 응답을 구문 분석 할 수 없습니다.

  28. 28

    다른 목록 내에서 명명 된 JSON을 구문 분석 할 때 "연결된 어댑터 없음, 레이아웃 건너 뛰기"오류 발생

  29. 29

    JAXB로 응답을 구문 분석 할 수 없습니다.

뜨겁다태그

보관