我有一个csv文件,如下所示:
Tom,10
Jack,10
Alice,10
Ben,9
我需要能够从第二列按从最高到最低排序。 我尝试了以下代码:
import csv
file = open("bestscores.csv","r")
reader = csv.reader(file, delimiter = ' ')
sort = sorted(reader,key=lambda x: int(x[1]), reverse=True)
print(sort)
这会导致以下错误:
ValueError: invalid literal for int() with base 10: 'Tom,10'
我该如何解决这个问题?
答案 0 :(得分:2)
您使用了错误的分隔符并对错误的索引进行了排序。这应该适合你:
import csv
with open("bestscores.csv","r") as fh
reader = csv.reader(fh, delimiter = ',')
sort = sorted(reader, key=lambda x: int(x[1]), reverse=True)
print(sort)
答案 1 :(得分:1)
你也可以这样做,
with open('file') as f:
print(''.join(sorted(f, key=lambda x: int(x.split(',')[1]), reverse=True)))