Maison >développement back-end >Tutoriel Python >Comment accéder aux données JSON imbriquées avec des documents JSON intégrés sous forme de chaînes ?

Comment accéder aux données JSON imbriquées avec des documents JSON intégrés sous forme de chaînes ?

DDD
DDDoriginal
2024-11-28 16:03:11488parcourir

How to Access Nested JSON Data with Embedded JSON Documents as Strings?

Comment accéder aux données JSON imbriquées avec des documents JSON intégrés

Lors de l'analyse de données JSON complexes, vous pouvez rencontrer des documents JSON intégrés sous forme de chaînes dans le structure JSON primaire. Pour accéder au contenu de ces documents intégrés, suivez ces étapes :

Problème :

Considérez la structure JSON suivante :

{ <br> "status": "200",<br> "msg": "",<br> "data": {</p>
<pre class="brush:php;toolbar:false">"time": "1515580011",
"video_info": [
  {
      "announcement": "{\n\t\"announcement_id\":\"6\",\n\t\"name\":\"INS\u8d26\u53f7\",\n\t\"icon\":\"http:\\/\\/liveme.cms.ksmobile.net\\/live\\/announcement\\/2017-08-18_19:44:54\\/ins.png\",\n\t\"icon_new\":\"http:\\/\\/liveme.cms.ksmobile.net\\/live\\/announcement\\/2017-10-20_22:24:38\\/4.png\",\n\t\"videoid\":\"15154610218328614178\",\n\t\"content\":\"FOLLOW ME PLEASE\",\n\t\"x_coordinate\":\"0.22\",\n\t\"y_coordinate\":\"0.23\"}\n",
      "announcement_shop": ""
  }
]

}
}

Pour accéder à la valeur « contenu » du document JSON intégré dans « annonce », vous pouvez tenter quelque chose comme :

replay_data = raw_replay_data'data'[0]<br>announcement = replay_data['announcement']

Cependant, l'annonce est désormais une chaîne représentant plus de données JSON et l'indexation des résultats d'annonce['content'] dans une TypeError en raison d'une chaîne invalide indices.

Solution :

Pour accéder correctement à la chaîne souhaitée, suivez les étapes suivantes :

  1. Importez le module json :

importer json

  1. Charger le document JSON intégré en tant que dictionnaire Python :

announcement_dict = json.loads(announcement)

  1. Accédez à la clé souhaitée dans le dictionnaire chargé :

desired_content = annonce_dict['content']

Dans ce cas, wanted_content contiendra la chaîne "FOLLOW ME PLEASE."

Explication détaillée :

Pour naviguer dans des structures JSON complexes, il est crucial de "regarder vos données" et identifier le chemin vers la valeur cible.

  1. Identifier le chemin : Dans notre exemple, le chemin d'accès à la valeur "content" est :
  • data
  • video_info (une liste)
  • Premier dictionnaire de la liste
  • annonce (une chaîne représentant JSON)
  • contenu (dans le fichier chargé JSON)
  1. Descendre par le chemin :
  • Commencer par data = data['data'] .
  • Utilisez l'indexation de liste pour accéder au premier dictionnaire dans video_info.
  • Attribuer la valeur de l'annonce dans une variable.
  • Chargez la chaîne JSON stockée dans l'annonce à l'aide de json.loads().
  • Accédez à la valeur souhaitée dans le dictionnaire chargé.

En suivant cette approche, vous pouvez accéder et manipuler efficacement des données imbriquées dans des structures JSON complexes.

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