我正在处理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
置于范围内,因此您将获得从0
到len(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'])