仅提供我正在尝试做的事情的上下文。 数据集来自data.world/notgibs 我创建了一个名为专辑的新列表,并尝试使用列表理解来获取1974年发行的专辑数量。这是我的代码:
with open ('/Users/Weindependent/Desktop/dataset/albumlist.csv', encoding='cp1252') as case0:
reader = csv.DictReader(case0) #the file is coded with single-byte coding
album = []
for row in reader:
album.append(row)
print (len(album))
我正在创建一个名为album_1974的新列表 对于我的专辑列表中“年份”为1974的每个专辑(行),请追加到名为album_1974的新列表中
album_1974 = [row for row in album if row["Year"]=='1974']
print ("Number of albums released in 1974:", len(album_1974))
错误是:TypeError:字符串索引必须是整数
尝试: 我发现year列中有一些非整数值,所以我继续定义is_valid_year:
def is_valid_year(string):
try:
year = int(string)
except:
return TypeError
else:
return year
并将其放回到我以前的脚本中:
album_1974 = [row for row in album if is_valid_year(row["Year"]=="1974")] #this is list comprehension
print ("No of album in 1974 released:",len(album_1974))
错误仍然存在
然后,我尝试使用排序功能按年份对列表中的相册进行排序,发生相同的错误: 我的代码:
album_sort = sorted(album,lambda = x : s["Artist"]
print (Album_sort)
相同错误:TypeError:字符串索引必须为整数
有人可以帮忙吗?