Python csv排序列TypeError:列表索引必须是整数或切片,而不是str

Python csv排序列TypeError:列表索引必须是整数或切片,而不是str,python,python-3.x,csv,sorting,Python,Python 3.x,Csv,Sorting,我试图使用Python内置模块对csv数据进行排序,但我遇到了这个错误,我不确定哪里出了问题 我正在使用key=lamda对我的列进行排序,并使用datetime将我的日期列排序为ASC csv_reader = csv.reader(csv_file) list_1 = list_1[3:] list_2 = [] csv_writer.writerow(['date', 'student_number']) for line in list_1: new_row = [col for i

我试图使用Python内置模块对csv数据进行排序,但我遇到了这个错误,我不确定哪里出了问题

我正在使用
key=lamda
对我的列进行排序,并使用
datetime
将我的日期列排序为ASC

csv_reader = csv.reader(csv_file)
list_1 = list_1[3:]
list_2 = []

csv_writer.writerow(['date', 'student_number'])

for line in list_1:
new_row = [col for idx, col in enumerate(line) if idx not in (1, 4, 5, 8)]

    line2 = new_row
    list_2.append(line2)

student_num= sorted(list_2[:10], key=lambda row: (row['student_number'])) <-- error
date = sorted(csv_reader, key=lambda row: datetime.strptime(row['date'], "%m/%d/%Y"), reverse=True) <-- error
csv\u reader=csv.reader(csv\u文件)
list_1=list_1[3:]
列表_2=[]
csv_writer.writerow(['date','student_number']))
对于列表_1中的行:
new_row=[idx的列,如果idx不在(1,4,5,8)中,枚举(行)中的列]
第2行=新行
列表2.追加(第2行)

student_num=sorted(list_2[:10],key=lambda row:(row['student_number'])对于csv,返回的行不是字典而是数组。在本例中,获取行的学生号信息是数组指示符1,行是一个列表,您希望从
行['student\u number')
中得到什么?我正在尝试根据'row'对标题列进行排序['student_number')但是,正如你被告知的那样,这不是一件可以排序的事情;列表有整数索引,使用这样的字符串只适用于像字典这样的映射类型。你能添加一些数据示例来更好地理解吗