J'essaie de travailler avec un très grand ensemble de données qui contient des caractères non standard. Je dois utiliser unicode, conformément aux spécifications du travail, mais je suis déconcerté. (Et il est fort possible que je fasse tout de travers).
J'ouvre le fichier CSV en utilisant :
15 ncesReader = csv.reader(open('geocoded_output.csv', 'rb'), delimiter='\t', quotechar='"')
Ensuite, je tente de l'encoder avec :
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])
J'encode tout sauf la lat et la lng car elles doivent être envoyées à une API. Lorsque j'exécute le programme pour analyser le jeu de données afin de l'utiliser, j'obtiens le Traceback suivant.
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)
Je pense que je dois vous dire que j'utilise python 2.7.2, et que cela fait partie d'une application construite sur django 1.4. J'ai lu plusieurs posts sur ce sujet, mais aucun ne semble s'appliquer directement. Toute aide sera grandement appréciée.
Sachez également que certains des caractères non standard à l'origine du problème sont Ñ et peut-être É.