>백엔드 개발 >파이썬 튜토리얼 >복잡한 JSON 구조에서 중첩된 값을 어떻게 추출합니까?

복잡한 JSON 구조에서 중첩된 값을 어떻게 추출합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-02 15:53:29693검색

How do you extract nested values from a complex JSON structure?

중첩된 JSON 값 추출

문제:

JSON 데이터를 구문 분석할 때 다음과 같은 문제가 발생할 수 있습니다. 다음과 같이 복잡하고 중첩된 구조:

<code class="json">{'name': 'ns1:timeSeriesResponseType',
 'declaredType': 'org.cuahsi.waterml.TimeSeriesResponseType',
 'scope': 'javax.xml.bind.JAXBElement$GlobalScope',
 'value': {'queryInfo': {'creationTime': 1349724919000,
                          'queryURL': 'http://waterservices.usgs.gov/nwis/iv/',
                          'criteria': {'locationParam': '[ALL:103232434]',
                                       'variableParam': '[00060, 00065]'},
                          'note': [{'value': '[ALL:103232434]',
                                    'title': 'filter:sites'},
                                   {'value': '[mode=LATEST, modifiedSince=null]',
                                    'title': 'filter:timeRange'},
                                   {'value': 'sdas01', 'title': 'server'}]}},
 'nil': False, 'globalScope': True, 'typeSubstituted': False}</code>

'creationTime' 필드와 같은 특정 값을 추출하려는 경우.

해결책:

1. 데이터 구조 탐색:

'creationTime' 값을 추출하려면 키를 사용하여 중첩 구조를 탐색해야 합니다:

<code class="python">my_dict['key1']['key2']['key3']</code>

2. 예제 코드:

'creationTime' 값을 얻으려면 다음 코드를 사용하십시오:

<code class="python">creation_time = my_dict['value']['queryInfo']['creationTime']</code>

3. 데이터 경로 결정:

특정 데이터 요소의 경로를 결정하려면 JSON 응답의 구조를 검사하십시오.

  • JSON의 각 키-값 쌍 구조는 경로 세그먼트를 나타냅니다.
  • 중첩된 값에 액세스하려면 경로 세그먼트를 '[]'로 연결하면 됩니다.

4. 보다 일반적인 접근 방식:

알 수 없는 중첩 JSON 구조가 발견되면 재귀 함수를 사용하여 원하는 값을 탐색하고 검색할 수 있습니다.

<code class="python">def get_nested_value(data, path):
  if isinstance(data, dict):
    if path[0] in data:
      return get_nested_value(data[path[0]], path[1:])
    else:
      return None  # Raise an error if the key doesn't exist

  elif isinstance(data, list):
    if len(path) == 0:
      return data
    else:
      return get_nested_value(data[path[0]], path[1:])

  else:
    return data

value = get_nested_value(my_dict, ['value', 'queryInfo', 'creationTime'])</code>

위 내용은 복잡한 JSON 구조에서 중첩된 값을 어떻게 추출합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.