Python 解析json api中的信息时出现问题
我正在解析一个机器人的琐事api中的一些数据,我从中提取数据,然后通过代码解析数据Python 解析json api中的信息时出现问题,python,json,Python,Json,我正在解析一个机器人的琐事api中的一些数据,我从中提取数据,然后通过代码解析数据 response = requests.get('https://opentdb.com/api.php?amount=1&type=') data = response.text parsed = json.loads(data) question = parsed["results"]["question"] await ctx.send(question)
response = requests.get('https://opentdb.com/api.php?amount=1&type=')
data = response.text
parsed = json.loads(data)
question = parsed["results"]["question"]
await ctx.send(question)
我得到这个错误:
list indices must be integers or slices, not str
在解析之前,我得到的是纯json,但现在它总是给我这个错误。这可能与我解析它的方式有关。任何帮助都将不胜感激 首先,您不需要获取文本,然后转换为json:
data = response.text
parsed = json.loads(data)
请求具有通过以下方式将响应转换为json的功能:
response.json()
从解析的[“结果”]获取[“问题”]的步骤出现错误,
因为解析的[“results”]是列表类型,您应该按数字(如0)获取它
question = parsed["results"][0]
然后你可以得到一个问题:
question = parsed["results"][0]['question']
await ctx.send(question)
该错误是由于解析的['results']是列表而不是字典。因此,您需要在结果列表中指定所需的项(0表示第一项,1表示第二项,等等)。 此外,请求-响应对象具有内置的.json()方法,因此无需使用json.load
response = requests.get('https://opentdb.com/api.php?amount=1&type=')
parsed = response.json()
question = parsed["results"][0]["question"]
await ctx.send(question)