【问题标题】:Django CSV upload UploadForm to database CleanDjango CSV 上传 UploadForm 到数据库 Clean
【发布时间】:2020-02-05 04:24:39
【问题描述】:

我想存储我上传的 CSV 文件中的数据,称为

数据文件

我无法在我的 csv 文件中按列名循环遍历行。 当我使用 IO 字符串时,我也会遇到编码错误(UTF、ASCII)。 我是 django 新手,所以我不知道我做错了什么。

在我看来,我尝试这样做:

def upload(request): 
 form = UploadForm(request.POST, request.FILES)
   if form.is_valid():
           f = io.TextIOWrapper(form.cleaned_data['data_file'].file, enconding='utf-8')
            reader = csv.DictReader(f)
            for column in reader:
print(column['Customer Name'])

我得到的错误是:

utf-8' 编解码器无法解码位置 10-11 中的字节:无效的继续字节

将其更改为“latin-1”(参见 cmets) 报错

行包含 NULL 字节

我的 CSV 文件中没有 NULL 值

【问题讨论】:

  • 我猜你的编码错误。您可以尝试将'utf-8' 更改为'latin-1' 吗?
  • 谢谢你,我认为它可以工作。我有一个新的错误行包含 NULL 字节。我的文件没有空值。
  • NULL 字节并不意味着 csv 中的 null 值,而是 CSV 文件中某种类型的不可编码字节。仔细检查指定行号的输入。
  • 谢谢问题解决了...

标签: django csv modelform stringio django-uploads


【解决方案1】:

答案是:

f.readline()

第一行是空的

【讨论】:

    猜你喜欢
    • 2013-06-13
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 2019-12-04
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    相关资源
    最近更新 更多