尝试从 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的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 ORACLE 获取工作日列表时出现 ORA-00904
从 HttpURLConnection 获取 InputStream 对象时出现 FileNotFoundException