您有两个问题:
您正在将字符串传递给的构造函数DictReader
。您必须传递一个可迭代的对象,该对象在输入中提供各行(字符串是可迭代的,但一次将每个字符赋予一个)。幸运的是,一个UploadedFile
对象(如FILES
字典中的对象)已经是支持迭代的类似文件的对象,因此只需执行以下操作:
data = csv.DictReader(request.FILES['file'])
您的输入数据只有一行。 DictReader
将使用该行作为“标题”列,这将成为结果字典中的关键字。这样您将没有数据了!看来您不想要a DictReader
,只是一个固执reader
:
data = csv.reader(request.FILES['file'])