在Django中将数据导入模型时出错

时间:2018-11-23 18:57:00

标签: python django unicode

我正在尝试将csv文件中的数据导入Django模型。我正在通过以下代码使用manage.py shell:

>>> import csv
>>> import os
>>> path =  "C:\\Users\Lia Love\Downloads" 
>>> os.chdir(path) 
>>> from catalog.models import ProductosBase
>>> with open('FarmaciasGob.csv') as csvfile:
...     reader = csv.DictReader(csvfile)
...     for row in reader:
...             p = Country(country=row['Country'], continent=row['Continent'])
...             p.save()
...
>>>
>>> exit()

我在数据集的给定点收到以下错误消息:

UnicodeDecodeError: "charmap" codec can´t decode byte 0x81 in position 7823: character maps to (undefined)

对于我发现的问题,csv文件的“拉丁”编码似乎有问题。

在检查csv时,对于出现错误的特定行,我看不到什么特别之处。我可以在此之前导入大约2200行,全部带有拉丁字符。

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

假设您使用的是python3,这是文件字符编码的问题。最有可能的编码是'utf-8',但也可能是'utf-16','utf-16le','cp1252'或'cp437',它们都是常用的。在python3中,您可以在open上指定文件的编码:


with open('FarmaciasGob.csv', encoding='utf-8') as csvfile: