我有一个JSON文件,我从中提取了一个列表。
我尝试使用列表索引从列表中获取其他项,但出现此错误。
TypeError:列表索引必须是整数或切片,而不是str。
for name in data['athletes'][0:]['athlete']['displayName']:
print(name)
如果我在索引中不使用冒号,它将提取名字。
最佳答案
您要指定:
for name in data['athletes'][0:]['athlete']['displayName']:
print(name)
大概
data['athletes'][0]
是字典。但是通过说data['athletes'][0:]
,您将获得slice
列表的data['athletes']
,实质上就是复制整个列表。尝试从列表中提取键值'displayName'
(它是字符串)没有任何意义,因此也就出错了(只能按整数索引列表)。当然,那不是您的意图。您只需要列表的第零个元素,因此删除冒号。如果列表的每个元素
data['athletes']
是要显示的键为athlete
的词典,则请参阅Daniel Roseman(@DanielRoseman)发布的答案。