unicodecsv.DictReader 中未保留 csv 中列的原始顺序

Original order of columns in csv not retained in unicodecsv.DictReader

我正在尝试使用 unicodecsv 库将 CSV 文件读入 python 3。代码如下:

with open('filename.csv', 'rb') as f: 
    reader = unicodecsv.DictReader(f)
    Student_Data = list(reader)

但是当我从 Student_Data 输出任何元素时,CSV 文件中列的顺序没有保留。输出包含任何随机顺序的列。代码有什么问题吗?我该如何解决这个问题?

csv.DictReader documentation 中所述,DictReader 对象的行为类似于 dict - 因此它没有排序。

您可以通过以下方式获取字段名列表:

reader.fieldnames

但如果你只想获取字段值的列表,按原始顺序,你可以使用普通的 reader:

with open('filename.csv', 'rb') as f: 
    reader = unicodecsv.reader(f)
    for row in reader:
        Student_Data = row