Estou tentando trabalhar com um conjunto de dados muito grande que contém alguns caracteres fora do padrão. Preciso usar Unicode, de acordo com as especificações do trabalho, mas estou perplexo. (E muito possivelmente fazendo tudo errado.)
Eu abro o CSV usando:
15 ncesReader = csv.reader(open('geocoded_output.csv', 'rb'), delimiter='\t', quotechar='"')
Então, tento codificá-lo com:
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])
Estou codificando tudo, exceto lat e lng porque eles precisam ser enviados para uma API. Quando executo o programa para analisar o conjunto de dados no que posso usar, obtenho o seguinte 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)
Acho que devo dizer que estou usando o python 2.7.2, e isso faz parte de um aplicativo desenvolvido no django 1.4. Eu li vários posts sobre este tópico, mas nenhum deles parece se aplicar diretamente. Qualquer ajuda será muito apreciada.
Você também pode querer saber se alguns dos caracteres não padrão que causam o problema são Ñ e possivelmente É.