【发布时间】: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