Heim >Backend-Entwicklung >Python-Tutorial >Wie extrahieren Sie verschachtelte Werte aus einer komplexen JSON-Struktur?
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:
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!