[英]django csv file upload managing
def createlist(request):
if request.method == 'POST':
files = request.FILES['ListFile']
print(type(files))
csv_file = csv.DictReader(files)
for i in csv_file:
print(i)
return HttpResponse("ok")
這給了
class'django.core.files.uploadedfile.InMemoryUploadedFile'
_csv.Error:迭代器應該返回字符串,而不是字節(你是否在文本模式下打開文件?)
在這里,我使用ajax發布此文件
JS:
$('#form1').ajaxForm(function(data) {
alert(data) ;
});
使用codec.iterdecode,我解決了它。我認為這是由於python 3.x
import codecs
def createlist(request):
if request.method == "POST":
fil = request.FILES['ListFile']
csvfile = csv.DictReader(codecs.iterdecode(fil, 'utf-8'))
for i in csv_file:
print(i)
return HttpResponse("ok")
CSV不支持UTF8。 它需要對類文件對象進行編碼。 有關更多信息,請參閱此處 。
import codecs
def createlist(request):
if request.method == "POST":
utf8_file = codecs.EncodedFile(request.FILES["ListFile"],"utf-8")
csv_file = csv.DictReader(utf8_file)
for i in csv_file:
print(i)
return HttpResponse("ok")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.