为什么Python认为我的字典是一个列表?我试图更改值时出现了一个打字错误

2024-05-18 12:24:07 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个小脚本,把歌曲添加到Rdio播放列表中。它基本上工作得很好。首先,它读取一个CSV并创建一个字典列表,每个字典都包含该曲目的属性。下面是实现这一点的代码:

csv_tracks = []
f = open('./testing_tracks.csv', 'rb')
reader = csv.reader(f)
for row in reader:
    csv_tracks.append({'artist':row[1], 'title':row[0], 'status':row[2]})
f.close

“status”值是一个0或1的字符串,用于指示该曲目是否已添加到播放列表中(因此我不会反复重新添加相同的曲目)。在

这个问题出现在脚本的后面,我运行一个循环来搜索Rdio上的每个曲目,如果找到,将其添加到播放列表中。代码如下:

^{pr2}$

输入错误。以下是信息:

Traceback (most recent call last):
  File "testing.py", line 76, in <module>
    if track['status'] == '0':
TypeError: list indices must be integers, not str

真正奇怪的是,这个剧本似乎运行得很好。对于状态=='0'的曲目,它会搜索这些曲目并将其添加到播放列表中,然后按照上述方法记录一条消息(“添加…到播放列表”)。唯一不起作用的是track['status']在添加一个track时没有更改为'1'。我得到了错误。在

我真的不明白为什么Python似乎认为我的字典是一个列表,只能接受整数索引。有什么帮助吗?在

免责声明:我是初学者。如果我做了一件非常愚蠢的事,请温柔点:)


Tags: csv代码in脚本列表字典statustrack
1条回答
网友
1楼 · 发布于 2024-05-18 12:24:07

您想要使用csv.DictReader它允许您按名称访问元素。默认的csv.reader以列表的形式返回每个记录。在

相关问题 更多 >

    热门问题