我正在尝试处理一个非常大的数据集,其中包含一些非标准字符。根据工作规范,我需要使用Unicode,但我感到困惑(并且很可能做错了一切)。
我使用以下方式打开CSV文件:
15 ncesReader = csv.reader(open('geocoded_output.csv', 'rb'), delimiter='\t', quotechar='"')
然后,我尝试使用以下方式进行编码:
name=school_name.encode('utf-8'), street=row[9].encode('utf-8'), city=row[10].encode('utf-8'), state=row[11].encode('utf-8'), zip5=row[12], zip4=row[13],county=row[25].encode('utf-8'), lat=row[22], lng=row[23])
我会编码除了经度和纬度以外的所有内容,因为它们需要被发送到API。当我运行程序将数据集解析成可用的格式时,我会得到以下Traceback。
Traceback (most recent call last):
File "push_into_db.py", line 80, in <module>
main()
File "push_into_db.py", line 74, in main
district_map = buildDistrictSchoolMap()
File "push_into_db.py", line 32, in buildDistrictSchoolMap
county=row[25].encode('utf-8'), lat=row[22], lng=row[23])
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 2: ordinal not in range(128)
我想告诉您,我正在使用Python 2.7.2,并且这是构建在Django 1.4上的应用程序的一部分。我已经阅读了几篇关于此主题的文章,但似乎没有一个直接适用的。任何帮助都将不胜感激。
您可能还想知道,一些非标准字符引起了问题,例如Ñ和可能的É。