Maison  >  Article  >  développement back-end  >  Comment extraire les valeurs imbriquées d’une structure JSON complexe ?

Comment extraire les valeurs imbriquées d’une structure JSON complexe ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 15:53:29608parcourir

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

Extraction des valeurs JSON imbriquées

Problème :

Lors de l'analyse des données JSON, vous pouvez rencontrer des structures complexes et imbriquées comme celle-ci :

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

Vous souhaitez extraire une valeur spécifique, comme le champ 'creationTime'.

Solution :

1. Naviguer dans la structure de données :

Pour extraire la valeur 'creationTime', nous devons parcourir la structure imbriquée à l'aide des clés :

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

2. Exemple de code :

Pour obtenir la valeur 'creationTime', utilisez le code suivant :

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

3. Détermination du chemin d'accès aux données :

Pour déterminer le chemin d'accès à un élément de données spécifique, examinez la structure de la réponse JSON :

  • Chaque paire clé-valeur du JSON La structure représente un segment de chemin.
  • Pour accéder à une valeur imbriquée, concaténez simplement les segments de chemin avec '[]'.

4. Approche plus générale :

Si vous rencontrez une structure JSON imbriquée inconnue, vous pouvez utiliser une fonction récursive pour naviguer et récupérer la valeur souhaitée :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn