我试图从这个嵌套的json有效载荷中仅获得值A.
我的功能:
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"
}
]
},
目前它正在返回括号内的所有内容[... value ... summary ... format ...]
找到解决方案:
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)
答案 0 :(得分:1)
由于id
值是一个列表(即使它只包含一个值),您需要使用列表索引器进入其中。由于Python中的列表是零索引的(它们从零开始),因此您将使用[0]
来提取第一个元素:
data["bod"]["id"][0]["value"]
答案 1 :(得分:0)
这有效:
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)