J'essaie de travailler avec un très grand ensemble de données contenant des caractères non standard. Je dois utiliser unicode, conformément aux spécifications du travail, mais je suis déconcerté. (Et très probablement tout faire mal.)
J'ouvre le CSV en utilisant:
15 ncesReader = csv.reader(open('geocoded_output.csv', 'rb'), delimiter='\t', quotechar='"')
Ensuite, j'essaye 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 le lat et le lng car ceux-ci doivent être envoyés à une API. Lorsque j'exécute le programme pour analyser l'ensemble de données dans ce que je peux 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 devrais vous dire que j'utilise python 2.7.2, et cela fait partie d'une application construite sur django 1.4. J'ai lu plusieurs articles sur ce sujet, mais aucun d'entre eux ne semble s'appliquer directement. Toute aide sera fortement appréciée.
Vous voudrez peut-être également savoir que certains des caractères non standard à l'origine du problème sont Ñ et éventuellement É.