尝试从 JSON 中获取最后 5 个对象时出现 TypeError

Posted

技术标签:

【中文标题】尝试从 JSON 中获取最后 5 个对象时出现 TypeError【英文标题】:TypeError when trying to get the last 5 objects from a JSON 【发布时间】:2022-01-13 11:50:45 【问题描述】:
import requests

headers = 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/91.0.4472.124 Safari/537.36"

url = f'https://.......'
response = requests.get(url, headers=headers).json()
graphs = response['graphpoints']
soma = sum(abs(d["value"]) for d in graphs["graphPoints"][-5:])

print(soma)
soma = sum(d["value"] for d in graphs["graphPoints"][-5:])
TypeError: list indices must be integers or slices, not str

我该如何解决这个TypeError

注意:在来自同一个 API 的其他响应中,没有出现此错误,但我找不到它的不同之处以及造成此类问题的原因..

注意 2:老实说,我在社区中发现了关于这个相同典型错误的其他问题,但我不明白如何在我的具体情况下解决这些问题。

【问题讨论】:

【参考方案1】:

你不需要两次读取graphPoints,替换

soma = sum(d["value"] for d in graphs["graphPoints"][-5:])

soma = sum(d["value"] for d in graphs[-5:])

【讨论】:

哦@mapr 是的,我最终尝试调用已经完成的路径,感谢您向我展示了这个缺陷!

以上是关于尝试从 JSON 中获取最后 5 个对象时出现 TypeError的主要内容,如果未能解决你的问题,请参考以下文章

从 json i laravel 获取数据时出现错误异常

尝试使用 ORACLE 获取工作日列表时出现 ORA-00904

从 HttpURLConnection 获取 InputStream 对象时出现 FileNotFoundException

通过 Ajax 解析 PHP 文件获取的 JSON 数据时出现问题

尝试在 React 中映射子对象时出现未定义错误

在 create-react-app 创建的环境中获取本地 JSON 文件时出现 JSON 解析错误