【发布时间】:2013-11-30 07:51:35
【问题描述】:
我正在尝试使用以下内容在 django 中验证 csv 文件上传:
class CSVUploadForm(forms.Form):
csv_file = forms.FileField(label='Select a CSV file to import:',)
def clean(self):
print 'clean'
file_csv = self.cleaned_data['csv_file']
records = csv.reader(file_csv, dialect=csv.excel_tab)
for row in records:
print ', '.join(row)
我得到错误:
new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
我认为方言可以解决这个问题。
如果我将阅读器更改为使用 rU 标志打开,它可以工作:
records = csv.reader(open('/mylocalpath/'+file_csv.name, 'rU'), dialect=csv.excel_tab)
问题在于,由于该文件是流式传输的,因此实际文件与本地文件完全不同。
如何将 rU 标志传递给文件的流式传输/上传版本?
【问题讨论】:
标签: python django csv django-forms