Я намагаюся працювати з дуже великим набором даних, у якому є деякі нестандартні символи. Мені потрібно використовувати 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])
Я кодую все, крім lat та lng, оскільки їх потрібно надсилати в 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. Я прочитав кілька публікацій на цю тему, але жодне з них, здається, не застосовується безпосередньо. Будь-яка допомога буде дуже вдячна.
Можливо, ви також хочете знати, що деякі з нестандартних символів, що викликають проблему, є Ñ і, можливо, É.