I have a csv file that looks like this:
Tom,10
Jack,10
Alice,10
Ben,9
I need to be able to sort by the second column from highest to lowest.
I have tried the following code:
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)
This results in the following error:
ValueError: invalid literal for int() with base 10: 'Tom,10'
How can I solve this?
解决方案
You are using the wrong delimiter and sorting the wrong index. This should work for you:
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)