为什么range(len())会导致TypeError:int在这种情况下不可下标



我正在处理JSON响应的循环,并试图弄清楚为什么在下面的例子中我会得到TypeError: 'int' not subscriptable

list = []
for i in range(len(json_data['MRData']['RaceTable']['Races'][0]['Results'])):
list.append(i['FastestLap']['Time']['time'])
print(list)

我只做了一个try/except块就解决了这个问题,但我宁愿知道迭代的长度。我试着从其他人那里读了一些关于这件事的帖子,但无法理解

这是因为i是其中的一个整数:list.append(i['FastestLap']['Time']['time'])

试试这个:

results = json_data['MRData']['RaceTable']['Races'][0]['Results']
for i in range(len(results)):
list.append(results[i]['FastestLap']['Time']['time'])

它将从列表中获得第6个CCD_。

您已将len置于范围内,因此您将获得从0len(whateverItIs) - 1的i值作为int。在循环中,你将i视为一个dict。当你试图访问一个整数时,会出现"typeerror:'int'object is not subscriptable"错误,就好像它是一个可下标的对象一样,比如列表或字典。

这就是为什么你在这一行中出现错误的原因:

list.append(i['FastestLap']['Time']['time'])

要克服这个问题,您可以执行以下操作:

dict_val = json_data['MRData']['RaceTable']['Races'][0]['Results']
for element in dict_val:
list.append(element['FastestLap']['Time']['time'])

相关内容

  • 没有找到相关文章

最新更新