解析嵌套的json有效负载python

解析嵌套的json有效负载python,python,json,Python,Json,我试图从这个嵌套的json负载中只获取一个值 我的功能: import requests import json def payloaded(): from urllib.request import urlopen with urlopen("www.example.com/payload.json") as r: data = json.loads(r.read().decode(r.headers.get_content_charset("utf-8"))) text = (dat

我试图从这个嵌套的json负载中只获取一个值

我的功能:

import requests
import json
def payloaded():
from urllib.request import urlopen
with urlopen("www.example.com/payload.json") as r:
    data = json.loads(r.read().decode(r.headers.get_content_charset("utf-8")))
text = (data["bod"]["id"])
print(text)
bod: {
id: [
    {
        value: "A",
        summary: "B",
        format: "C"
    }
  ]
},
def payloaded():
from urllib.request import urlopen
with urlopen("www.example.com/payload.json") as r:
    data = json.loads(r.read().decode(r.headers.get_content_charset("utf-8")))
text = (data["bod"]["id"][0]["value"])
print(text)
有效负载:

import requests
import json
def payloaded():
from urllib.request import urlopen
with urlopen("www.example.com/payload.json") as r:
    data = json.loads(r.read().decode(r.headers.get_content_charset("utf-8")))
text = (data["bod"]["id"])
print(text)
bod: {
id: [
    {
        value: "A",
        summary: "B",
        format: "C"
    }
  ]
},
def payloaded():
from urllib.request import urlopen
with urlopen("www.example.com/payload.json") as r:
    data = json.loads(r.read().decode(r.headers.get_content_charset("utf-8")))
text = (data["bod"]["id"][0]["value"])
print(text)
目前它正在返回括号内的所有内容[…值…摘要…格式…]

找到的解决方案:

import requests
import json
def payloaded():
from urllib.request import urlopen
with urlopen("www.example.com/payload.json") as r:
    data = json.loads(r.read().decode(r.headers.get_content_charset("utf-8")))
text = (data["bod"]["id"])
print(text)
bod: {
id: [
    {
        value: "A",
        summary: "B",
        format: "C"
    }
  ]
},
def payloaded():
from urllib.request import urlopen
with urlopen("www.example.com/payload.json") as r:
    data = json.loads(r.read().decode(r.headers.get_content_charset("utf-8")))
text = (data["bod"]["id"][0]["value"])
print(text)

由于
id
值是一个列表(即使它只包含一个值),因此需要使用列表索引器进入其中。由于Python中的列表索引为零(从零开始),因此将使用
[0]
提取第一个元素:

data["bod"]["id"][0]["value"]
这项工作:

def payloaded():
from urllib.request import urlopen
with urlopen("www.example.com/payload.json") as r:
    data = json.loads(r.read().decode(r.headers.get_content_charset("utf-8")))
text = (data["bod"]["id"][0]["value"])
print(text)

谢谢我得出了与你建议的相同的解决方案。