UnicodeDecodeError: 'ascii' Codec kann das Byte in 0xc3 nicht in Position 304 decodieren: Ordinal nicht im Bereich (128)

Ich habe gerade den PC bei der Arbeit (mit Python 2.7) und hatte ein Skript, dass ich gerade fertig war (wiedergegeben unten). Es lief gut bei der Arbeit, ich wollte nur ein oder zwei Dinge hinzufügen. Aber ich bin nach Hause gekommen und verwende meine Mac-Version von Python (3.2.2) und bekomme folgende Fehlermeldung:

Traceback (most recent call last): File "/Users/Downloads/sda/alias.py", line 25, in <module> for row_2 in in_csv: File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/encodings/ascii.py", line 26, in decode return codecs.ascii_decode(input, self.errors)[0] UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 304: ordinal not in range(128) 

Mein Code ist hier:

 import csv inname = "Fund_Aliases.csv" outname = "output.csv" def first_word(value): return value.split(" ", 1)[0] with open(inname, "r") as infile: with open(outname, "w") as out file: in_csv = csv.reader(infile) out_csv = csv.writer(outfile) column_names = next(in_csv) out_csv.writerow(column_names) id_index = column_names.index("id") name_index = column_names.index("name") try: row_1 = next(in_csv) written_row = False for row_2 in in_csv: if first_word(row_1[name_index]) == first_word(row_2[name_index]) and row_1[id_index] != row_2[id_index]: if not written_row: out_csv.writerow(row_1) out_csv.writerow(row_2) written_row = True else: written_row = False row_1 = row_2 except StopIteration: # No data rows! pass 

  • Wie kann ich diesen Unicode / cPickle Fehler in Python reparieren?
  • Konvertieren Sie Python-Dateinamen in Unicode
  • Python-Schnittstelle zu PayPal - urllib.urlencode Nicht-ASCII-Zeichen fehlgeschlagen
  • Warum Unicode-String wird nicht auf der PyCharm-Konsole angezeigt?
  • Spezielle nationale Zeichen werden in Python nicht .plit ()
  • Wie konnten wir Unicode von Glyphen id in Python bekommen?
  • Python - Unicode zur ASCII-Konvertierung
  • Kratzen einer Website, deren Encodierung iso-8859-1 statt utf-8 ist: Wie kann ich den richtigen Unicode in meiner Datenbank speichern?
  • One Solution collect form web for “UnicodeDecodeError: 'ascii' Codec kann das Byte in 0xc3 nicht in Position 304 decodieren: Ordinal nicht im Bereich (128)”

    Es sieht aus wie Fund_Aliases.csv ist keine ascii-Datei.

    Nach den Python3-Dokumenten :

    Da open () zum Öffnen einer CSV-Datei zum Lesen verwendet wird, wird die Datei standardmäßig mit der System-Default-Codierung in Unicode decodiert (siehe locale.getpreferredencoding ()). Um eine Datei mit einer anderen Codierung zu dekodieren, verwenden Sie das Codierungsargument von open:

     with open('some.csv', newline='', encoding='utf-8') as f: reader = csv.reader(f) 

    Versuchen Sie also, den encoding anzugeben.

    Python ist die beste Programmiersprache der Welt.