Sto tentando di utilizzare un set di dati molto grande che contiene caratteri non standard. Ho bisogno di usare unicode, come da specifiche del lavoro, ma sono sconcertato. (E molto probabilmente facendo tutto sbagliato.)UnicodeDecodeError: il codec 'ascii' non può decodificare il byte 0xd1 in posizione 2: ordinale non compreso nell'intervallo (128)
apro il CSV utilizzando:
15 ncesReader = csv.reader(open('geocoded_output.csv', 'rb'), delimiter='\t', quotechar='"')
Poi, tento di codificare con:
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])
sto codifica tutto tranne il lat e lng perché questi devono essere inviati a un'API. Quando eseguo il programma per analizzare il set di dati in ciò che posso utilizzare, ottengo il seguente 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)
Penso che dovrei dirvi che sto usando python 2.7.2, e questo fa parte di un app costruire su Django 1.4. Ho letto diversi post su questo argomento, ma nessuno di essi sembra applicarsi direttamente. Qualsiasi aiuto sarà molto apprezzato.
Si potrebbe anche voler sapere che alcuni dei caratteri non standard che causano il problema sono Ñ e possibilmente É.
Qual è la sua codifica del file originale? Penso che dovresti decodificarlo secondo la codifica originale e poi convertire in utf 8 –
possibile duplicato di [Encoding give "'codec ascii' non può codificare caratteri ... ordinal not in range (128)"] (http: // stackoverflow .com/questions/2513027/encoding-give-ascii-codec-cant-encode-character-ordinal-not-in-range128) [Ed .: e di circa un miliardo di altri anche, sono sicuro.] –