Django CSV文件上传管理

django csv file upload managing

本文关键字:管理 文件 CSV Django      更新时间:2023-09-26
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")

这给了
类"django.core.files.uploadedfile.InMemoryUploadedFile"
_csv。错误:迭代器应该返回字符串,而不是字节(是否以文本模式打开文件?)
这里我使用ajax发布这个文件
js:

$('#form1').ajaxForm(function(data) { 
           alert(data) ; 
        });

使用编解码器。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")