所以我有一个小脚本,把歌曲添加到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似乎认为我的字典是一个列表,只能接受整数索引。有什么帮助吗?在
免责声明:我是初学者。如果我做了一件非常愚蠢的事,请温柔点:)
您想要使用
csv.DictReader
它允许您按名称访问元素。默认的csv.reader
以列表的形式返回每个记录。在相关问题 更多 >
编程相关推荐