我有一个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)发布的答案。

09-26 03:24