簡體   English   中英

django csv文件上傳管理

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM