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

时间:2017-07-03 16:24:54

标签: python-3.x csv python-unicode ordereddictionary

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

reader.fieldnames

但是如果您只想按原始顺序获取字段值列表,则可以使用普通读者:

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