[PYTHON] UnicodeDecodeError: Was tun, wenn der Codec von'shift_jis kein Byte dekodieren kann?

--Umgebung --Windows10 Pro Version 1909 - Python 3.8.5 - Pandas 1.0.5

Ereignis: Ich wurde wütend, als ich eine CSV-Datei mit Pandas las

Traceback (most recent call last):
  File "C:/path/to/my_code.py", line 258, in <module>
    csv = read_files(target_dir)
  File "C:/path/to/my_code.py", line 74, in read_files
    data = pd.read_csv(file, encoding="shift_jis")
  File "C:\path\to\venv\lib\site-packages\pandas\io\parsers.py", line 676, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "C:\path\to\venv\lib\site-packages\pandas\io\parsers.py", line 448, in _read
    parser = TextFileReader(fp_or_buf, **kwds)
  File "C:\path\to\venv\lib\site-packages\pandas\io\parsers.py", line 880, in __init__
    self._make_engine(self.engine)
  File "C:\path\to\venv\lib\site-packages\pandas\io\parsers.py", line 1114, in _make_engine
    self._engine = CParserWrapper(self.f, **self.options)
  File "C:\path\to\venv\lib\site-packages\pandas\io\parsers.py", line 1891, in __init__
    self._reader = parsers.TextReader(src, **kwds)
  File "pandas\_libs\parsers.pyx", line 529, in pandas._libs.parsers.TextReader.__cinit__
  File "pandas\_libs\parsers.pyx", line 720, in pandas._libs.parsers.TextReader._get_header
  File "pandas\_libs\parsers.pyx", line 916, in pandas._libs.parsers.TextReader._tokenize_rows
  File "pandas\_libs\parsers.pyx", line 2063, in pandas._libs.parsers.raise_parser_error
UnicodeDecodeError: 'shift_jis' codec can't decode byte 0xee in position 4225: illegal multibyte sequence

my_code.py


data = pd.read_csv(file, encoding="shift_jis")

Ursache: Die Datei enthält erweiterte Zeichen, die CP932 in SJIS nicht enthält.

Dies ist in test2.csv, ・ Hashigodaka "Taka" ・ Tachisaki "Saki" Dies liegt an der Tatsache, dass Windows-Erweiterungszeichenfolgen wie> gemischt werden. Zu beachtende Punkte, wenn Pandas CSV der Excel-Ausgabe lesen dürfen - Qiita

Ich bin verrückt, also habe ich die Kombination ausprobiert. Ich habe versucht, "Takasaki" als erweiterten Charakter zu verwenden.

read_csv
Zeichencode
Datei von
Zeichencode
Datei von
Mit erweiterten Zeichen
Datei von
Keine erweiterten Zeichen
shift_jis shift_jis Error OK
shift_jis cp392 Error OK
cp932 shift_jis Error
Editor(Sublime Text)damit
Wenn Sie erweiterte Zeichen einfügen und speichern
保存はdamitきるけど警告が出る。
Sie sollten bemerken, dass es seltsam ist ...
OK
cp932 cp932 OK OK

Verschiebung mit cp932_Fehler beim Lesen einer Datei mit erweiterten Zeichen mit jis


# ...Kürzung...
UnicodeDecodeError: 'cp932' codec can't decode byte 0x86 in position 5: illegal multibyte sequence

Wenn Sie eine Datei mit Japanisch unter Windows verwenden, ist es besser, sie auf "cp932" zu setzen. Ich habe auch CP932 und SJIS studiert.

Aktion: Lesen Sie die Datei mit CP932

my_code.py


data = pd.read_csv(file, encoding="cp932")

Recommended Posts

UnicodeDecodeError: Was tun, wenn der Codec von'shift_jis kein Byte dekodieren kann?
Mecab --UnicodeDecodeError: Der Codec 'utf8' kann kein Byte dekodieren
Wenn der Codec das Byte nicht dekodieren kann, wird es in Python angezeigt
Was tun, wenn pipreqs zu UnicodeDecodeError führt?
Was tun, wenn die Pipenv-Shell nicht mehr möglich ist?
Was tun, wenn Sie mysqlclient nicht per Pip installieren können?
Was tun, wenn in pip ein Unicode-Dekodierungsfehler auftritt?
Was tun, wenn Sie keine Dateien mit Indizes sortieren können?
Was tun, wenn Sie sich nicht als root anmelden können?
Was tun, wenn Sie unter Linux kein WLAN verwenden können?
Was tun, wenn Ubuntu abstürzt?
Was tun, wenn Yum kaputt geht?
Was tun mit der Installation von Magics?
Was tun, wenn Sie pyaudio nicht mit pip #Python installieren können?
Was tun, wenn bei der Pip-Installation ein Unicode-Dekodierungsfehler auftritt?
Was tun mit PYTHON Release?
UnicodeDecodeError: Der Codec 'ascii' kann das Byte 0xa4 an Position 0 nicht dekodieren: Ordnungszahl nicht im Bereich (128)
Was tun, wenn Sie mit Maven kein Projekt erstellen können?
Was tun, wenn Sie den Papierkorb in Lubuntu 18.04 nicht verwenden können?
Was tun, wenn "Ich kann die Site nicht sehen !!!!"
Was tun, wenn UnicodeDecodeError während read_csv in Pandas auftritt (pd.read_table ())
Was tun, wenn die Option -f von grep nicht funktioniert?
Was tun, wenn PDO nicht in Laravel oder CakePHP gefunden wird?
Was tun, wenn Sie die Rastersuche von sklearn in Python nicht verwenden können?
Was tun, wenn Sie nicht mit pip in einer Babun-Umgebung installieren können?
Was tun nach der Installation von Linux (Ubuntu)
Lassen Sie uns zusammenfassen, was Sie tun möchten.
Lösung, wenn Django keine Bilder aus einem statischen Ordner laden kann
Was ICCV2019 Best Paper SinGAN nicht kann [Übung]
[Python] Was ich getan habe, um Unit Test zu machen
Vermeiden, dass "'ascii' Codec nicht dekodieren kann" mit pip install
Was tun, wenn mod_fcgid UnicodeEncodeError nicht auflösen kann?
[Für Anfänger] Was ist nach der Installation von Anaconda zu tun?
Was tun, wenn die Schienen nicht funktionieren?
Was tun, wenn pip nicht installiert werden kann?
Was tun, wenn ein PermissionError in tempfile.mkstemp auftritt?
Was tun, wenn die Autocomplete-Python von Atom nicht funktioniert?
Was tun, um eine Google-Tabelle in Python zu erhalten?
Was tun, wenn die Docker-Synchronisierung plötzlich nicht mehr funktioniert?
yum löst den Fehler "UnicodeDecodeError: 'ascii' Codec kann Byte 0xc3 in Position 15 nicht dekodieren: Ordnungszahl nicht im Bereich (128)" aus
So installieren und verwenden Sie pyenv. Was tun, wenn Sie die Python-Version nicht wechseln können?