Heim >Backend-Entwicklung >Python-Tutorial >Wie greife ich auf verschachtelte JSON-Daten mit eingebetteten JSON-Dokumenten als Zeichenfolgen zu?

Wie greife ich auf verschachtelte JSON-Daten mit eingebetteten JSON-Dokumenten als Zeichenfolgen zu?

DDD
DDDOriginal
2024-11-28 16:03:11488Durchsuche

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

So greifen Sie auf verschachtelte JSON-Daten mit eingebetteten JSON-Dokumenten zu

Beim Parsen komplexer JSON-Daten stoßen Sie möglicherweise auf eingebettete JSON-Dokumente als Zeichenfolgen innerhalb der primäre JSON-Struktur. Um auf den Inhalt dieser eingebetteten Dokumente zuzugreifen, befolgen Sie diese Schritte:

Problem:

Berücksichtigen Sie die folgende JSON-Struktur:

{ <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": ""
  }
]

}
}

Um auf den „Inhalt“-Wert des eingebetteten JSON-Dokuments in „Ankündigung“ zuzugreifen, können Sie etwas versuchen wie:

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

Ansage ist jetzt jedoch eine Zeichenfolge, die mehr JSON-Daten darstellt, und die Indizierung von Announcement['content'] führt aufgrund ungültiger Zeichenfolgenindizes zu einem TypeError.

Lösung:

Um korrekt auf die gewünschte Zeichenfolge zuzugreifen, verwenden Sie Folgendes Schritte:

  1. JSON-Modul importieren:

import json

  1. Laden Sie das eingebettete JSON-Dokument als Python Wörterbuch:

announcement_dict = json.loads(announcement)

  1. Greifen Sie im geladenen Verzeichnis auf den gewünschten Schlüssel zu Wörterbuch:

desired_content = ankündigung_dict['content']

In diesem Fall enthält gewünscht_content die Zeichenfolge „FOLLOW ME PLEASE.“

Ausführliche Erklärung:

Um in komplexen JSON-Strukturen zu navigieren, ist es entscheidend, „auf Ihre Daten zu starren“ und den Weg zum Ziel zu identifizieren Wert.

  1. Identifizieren Sie den Pfad: In unserem Beispiel lautet der Pfad zum Wert „Inhalt“:
  • Daten
  • video_info (eine Liste)
  • Erstes Wörterbuch im Liste
  • Ankündigung (eine Zeichenfolge, die JSON darstellt)
  • Inhalt (innerhalb des geladenen JSON)
  1. Abstieg durch den Pfad:
  • Beginnen Sie mit Daten = data['data'].
  • Verwenden Sie die Listenindizierung, um auf das erste Wörterbuch in video_info zuzugreifen.
  • Weisen Sie den Wert der Ankündigung einer Variablen zu.
  • Laden Sie die gespeicherte JSON-Zeichenfolge in der Ankündigung mit json.loads().
  • Greifen Sie auf den gewünschten Wert innerhalb der geladenen zu Wörterbuch.

Durch die Befolgung dieses Ansatzes können Sie effizient auf verschachtelte Daten in komplexen JSON-Strukturen zugreifen und diese bearbeiten.

Das obige ist der detaillierte Inhalt vonWie greife ich auf verschachtelte JSON-Daten mit eingebetteten JSON-Dokumenten als Zeichenfolgen zu?. 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