我正在尝试在django中读取CSV文件。示例文件位于此处。
if request.POST:
try:
fl = request.FILES['csv']
reader = csv.DictReader(fl, "rU")
all_keys = reader.fieldnames
reader.next()
// if this does not work then provide dialect as well.
except Exception as e:
try:
reader = csv.DictReader(fl, "rU", dialect=csv.excel)
all_keys = reader.fieldnames
reader.next()
except Exception as e:
return render(request, "error.html", {"errr":str(e.message)})
两次,我都收到以下错误 -
Error: 'new-line character seen in unquoted field - do you need to open the file in universal-newline mode?'
在 unix 系统中生成的文件运行良好。
任何线索如何解决它?
您可以尝试使用正确的模式重新打开FD:
os.fdopen(fl, 'rU')
我也不认为对reader = csv.DictReader(fl, "rU", dialect=csv.excel)
的调用是您所期望的,第二个参数是字段名称,
我会尝试:
reader = csv.reader(f1, dialect=csv.excel_tab)
或在 universal newline mode
中打开文件并将其传递给 reader
.
reader = csv.reader(open(self.file, 'rU'), dialect=csv.excel_tab)