TypeError:列表索引必须是整数或切片,而不是解析json请求时的str

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TypeError:列表索引必须是整数或切片,而不是解析json请求时的str相关的知识,希望对你有一定的参考价值。

我有一些问题,我学习使用请求和json但我有这个问题

r2 = requests.get('https://poloniex.com/public?command=returnTicker') usdt_btc_ask = r2.json(['USDT_BTC']['lowestAsk'])

和错误

TypeError: list indices must be integers or slices, not str

这段代码没有错误

r1 = requests.get('https://api.coindesk.com/v1/bpi/currentprice.json') print(r1.json()['time']['updated']['bpi']['USD']['rate_float'])

如何用这句话来解决这个问题?

答案

您可以通过执行requests.getreq.json()获得响应,它将为您提供可以迭代的字典。

在你的情况下,json_obj['time']['updated']给你一个字符串,而不是字典,所以你不能在它上面做json_obj['time']['updated']['bpi']

import requests

r1 = requests.get('https://api.coindesk.com/v1/bpi/currentprice.json')
json_obj = r1.json()
print(json_obj['time']['updated'])
#Apr 20, 2019 14:43:00 UTC

以上是关于TypeError:列表索引必须是整数或切片,而不是解析json请求时的str的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:列表索引必须是整数或切片,而不是 str

TypeError:列表索引必须是整数或切片,而不是尝试制作二维列表时的元组

Python:无法替换列表中的项目,原因是:TypeError:列表索引必须是整数或切片,而不是 str

在调用列表中的字典中的值时收到“TypeError:列表索引必须是整数或切片,而不是字典”

TypeError:列表索引必须是整数或切片,而不是解析json请求时的str

Spyder-TypeError中的双向重复测量ANOVA:列表索引必须是整数或切片,而不是numpy.float64