我正在解析一个机器人的琐事api中的一些数据,我正在从https://opentdb.com/api.php?amount=1&type=中提取数据,当我通过这段代码解析它时
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,但现在它总是给我这个错误。这可能与我解析它的方式有关。任何帮助都将不胜感激
该错误是由于解析的['results']是列表而不是字典。因此,您需要在结果列表中指定所需的项(0表示第一项,1表示第二项,等等)。 此外,请求-响应对象具有内置的.json()方法,因此无需使用json.load
首先,您不需要获取文本,然后转换为json:
请求具有通过以下方式将响应转换为json的功能:
从解析的[“结果”]获取[“问题”]的步骤出现错误, 因为解析的[“results”]是列表类型,您应该按数字(如0)获取它
然后你可以得到一个问题:
相关问题 更多 >
编程相关推荐