Я пытаюсь работать с очень большим набором данных, в котором есть нестандартные символы. Мне нужно использовать юникод в соответствии со спецификациями работы, но я сбит с толку. (И вполне возможно, что все делаю неправильно.)
Я открываю 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])
Я кодирую все, кроме lat и lng, потому что их нужно отправить в API. Когда я запускаю программу для синтаксического анализа набора данных, чтобы получить то, что я могу использовать, я получаю следующую трассировку.
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. Я прочитал несколько сообщений по этой теме, но ни один из них, похоже, не применим напрямую. Любая помощь будет оценена.
Вы также можете узнать, что некоторые из нестандартных символов, вызывающих проблему, - это Ñ и, возможно, É.