Home >Backend Development >Python Tutorial >How to Access Nested JSON Data with Embedded JSON Documents as Strings?

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

DDD
DDDOriginal
2024-11-28 16:03:11532browse

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

How to Access Nested JSON Data with Embedded JSON Documents

While parsing complex JSON data, you may encounter embedded JSON documents as strings within the primary JSON structure. To access the content of these embedded documents, follow these steps:

Problem:

Consider the following JSON structure:

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

}
}

To access the "content" value of the embedded JSON document within "announcement," you may attempt something like:

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

However, announcement is now a string representing more JSON data, and indexing announcement['content'] results in a TypeError due to invalid string indices.

Solution:

To access the desired string correctly, use the following steps:

  1. Import the json module:

import json

  1. Load the embedded JSON document as a Python dictionary:

announcement_dict = json.loads(announcement)

  1. Access the desired key within the loaded dictionary:

desired_content = announcement_dict['content']

In this case, desired_content will contain the string "FOLLOW ME PLEASE."

In-depth Explanation:

To navigate complex JSON structures, it's crucial to "stare at your data" and identify the path to the target value.

  1. Identify the path: In our example, the path to the "content" value is:
  • data
  • video_info (a list)
  • First dictionary in the list
  • announcement (a string representing JSON)
  • content (within the loaded JSON)
  1. Descend through the path:
  • Start with data = data['data'].
  • Use list indexing to access the first dictionary in video_info.
  • Assign the value of announcement to a variable.
  • Load the JSON string stored in announcement using json.loads().
  • Access the desired value within the loaded dictionary.

By following this approach, you can efficiently access and manipulate nested data in complex JSON structures.

The above is the detailed content of How to Access Nested JSON Data with Embedded JSON Documents as Strings?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn