Heim >Backend-Entwicklung >Python-Tutorial >Wie extrahieren Sie verschachtelte Werte aus einer komplexen JSON-Struktur?

Wie extrahieren Sie verschachtelte Werte aus einer komplexen JSON-Struktur?

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 15:53:29693Durchsuche

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

Extrahieren verschachtelter JSON-Werte

Problem:

Beim Parsen von JSON-Daten kann Folgendes auftreten komplexe und verschachtelte Strukturen wie diese:

<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>

Sie möchten einen bestimmten Wert extrahieren, beispielsweise das Feld „creationTime“.

Lösung:

1. Navigieren Sie durch die Datenstruktur:

Um den Wert „creationTime“ zu extrahieren, müssen wir mit den Tasten durch die verschachtelte Struktur navigieren:

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

2. Beispielcode:

Um den Wert „creationTime“ zu erhalten, verwenden Sie den folgenden Code:

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

3. Bestimmen des Pfads zu Daten:

Um den Pfad zu einem bestimmten Datenelement zu bestimmen, untersuchen Sie die Struktur der JSON-Antwort:

  • Jedes Schlüssel-Wert-Paar im JSON Struktur stellt ein Pfadsegment dar.
  • Um auf einen verschachtelten Wert zuzugreifen, verketten Sie einfach die Pfadsegmente mit „[]“.

4. Allgemeinerer Ansatz:

Wenn Sie auf eine unbekannte verschachtelte JSON-Struktur stoßen, können Sie eine rekursive Funktion verwenden, um zu navigieren und den gewünschten Wert abzurufen:

<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>

Das obige ist der detaillierte Inhalt vonWie extrahieren Sie verschachtelte Werte aus einer komplexen JSON-Struktur?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn