Django 读取在 mac/windows 系统中创建的 unix 中的 csv 文件



我正在尝试在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)

最新更新