我正在尝试将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行,全部带有拉丁字符。
有任何线索吗?
答案 0 :(得分:1)
假设您使用的是python3,这是文件字符编码的问题。最有可能的编码是'utf-8',但也可能是'utf-16','utf-16le','cp1252'或'cp437',它们都是常用的。在python3中,您可以在open
上指定文件的编码:
with open('FarmaciasGob.csv', encoding='utf-8') as csvfile: