MENU
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
カテゴリー
  • IT関連 (623)
    • Bootstrap (2)
    • クラウド (4)
    • サーバー技術 (185)
    • ストレージ (7)
      • NetApp (7)
    • ネットワーク技術 (91)
      • Cisco (36)
      • Juniper (18)
      • 負荷分散装置 (17)
    • パソコン関連 (92)
      • MAC (25)
      • Windows (54)
    • プログラミング (154)
      • Ansible (11)
      • C言語 (23)
      • Python (111)
        • Django (20)
    • 仮想化 (88)
      • Docker (63)
      • VMware (23)
  • VPS (200)
    • ABLENET VPS (16)
    • Amazon Lightsail(VPS) (2)
    • ConoHaVPS (37)
    • mixhostVPS (4)
    • WebARENAIndigo (16)
    • XServerVPS (34)
    • お名前.com VPS (12)
    • さくらのVPS (24)
    • カゴヤクラウドVPS (13)
    • シンVPS (7)
  • レンタルサーバー (56)
    • エックスサーバー (38)
  • 光回線 (8)
  • 技術スキルアップ開発・学習 (7)
    • Envader (2)
    • RareTECH (2)
    • Udemy (3)
もう現役20年超えましたー。経験値ならだれにも負けないエンジニア技術ブログ
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
  1. ホーム
  2. IT関連
  3. プログラミング
  4. Python
  5. 【Python】UnicodeDecodeError: が発生した際の対処法

【Python】UnicodeDecodeError: が発生した際の対処法

2020 2/09
Python
2020年2月9日

Pythonコードを書いている際にプログラムを実行すると「UnicodeDecodeError」が発生しました。

このようなエラーが発生する人は結構いるはず。
今回は、このエラーの対処法についてまとめました。

目次
安くて高速!高性能VPSで快適開発!
最速5分でサーバー構築
>>>こちらをチェック

エンジニア必見! 技術力を伸ばすVPS徹底比較
>>>VPS比較

「UnicodeDecodeError: 」エラーが発生した際の対処法まとめ

今回は以下のようなプログラムをPythonで作成しました。
プログラムの内容は、取得したデータ「file.csv」の中身のデータを置換修正し、その後、そのCSVファイルを読み込み、データをエクセルへ出力するプログラムとなります。

import pandas as pd
import re

with open('file.csv', 'r', newline='') as file, \
        open('file_out.csv', 'w', newline='') as fileout:
   
        text = re.sub(r'\s* ', ',', file.read())
        print(text, file = fileout)
        print('置換完了')
  
# CSVファイルの読み込み
data = pd.read_csv('file_out.csv')
  
# Excel形式で出力
data.to_excel('excel-data.xlsx', encoding='utf-8')
 
print('CSV > Excel変換完了')

「UnicodeDecodeError: 」エラー内容

上記のプログラムを実行すると「UnicodeDecodeError:」が発生しました。

  File "pandas/_libs/parsers.pyx", line 881, in pandas._libs.parsers.TextReader.read
  File "pandas/_libs/parsers.pyx", line 896, in pandas._libs.parsers.TextReader._read_low_memory
  File "pandas/_libs/parsers.pyx", line 973, in pandas._libs.parsers.TextReader._read_rows
  File "pandas/_libs/parsers.pyx", line 1105, in pandas._libs.parsers.TextReader._convert_column_data
  File "pandas/_libs/parsers.pyx", line 1158, in pandas._libs.parsers.TextReader._convert_tokens
  File "pandas/_libs/parsers.pyx", line 1281, in pandas._libs.parsers.TextReader._convert_with_dtype
  File "pandas/_libs/parsers.pyx", line 1297, in pandas._libs.parsers.TextReader._string_convert
  File "pandas/_libs/parsers.pyx", line 1520, in pandas._libs.parsers._string_box_utf8
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 0: invalid start byte

このエラーは、’utf-8′ にデコードできないといわれ、実行が失敗しています。
原因としては、CSVファイルの読み込みが失敗しているようでした。

CSVファイルの読み込み時にエンコーディングを追加

うまくCSVが読み込めないところが原因となっているので、CSVファイルの読み込みは、「encoding=”shift-jis”」が必要になります。

以下は、csvファイルの読み込み時にエンコーディングの指定コードを追加しました。

data = pd.read_csv('file_out.csv', encoding='shift-jis')

また、以下でも問題ないです。

data = pd.read_csv(‘file_out.csv’, encoding='cp932′)

このcp932は、MicrosoftがShift-jisを独自に拡張した文字コードとなります。
今回はこちらを使用しています。

このコードを使用すると、「Shift-jis」で書かれたプログラムをUTF−8に変換して処理をしてくれます。
なので今回のエラーに対しても最も適したコードになると思います。

CSV読み込み時にエンコードを追加したプログラム

修正したコードは以下となります。

import pandas as pd
import re

with open('file.csv', 'r', newline='') as file, \
        open('file_out.csv', 'w', newline='') as fileout:
  
        text = re.sub(r'\s* ', ',', file.read())
        print(text, file = fileout)
        print('置換完了')
 
# CSVファイルの読み込み
data = pd.read_csv(‘file_out.csv’, encoding='cp932′)
 
# Excel形式で出力
data.to_excel('excel-data.xlsx', encoding='utf-8')

print('CSV > Excel変換完了')

これでエラーは解消されました。
該当のエラーが発生した際は参考にしてください。

エンジニアスキルをアップする勉強法

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。

あわせて読みたい
現役エンジニアがおすすめするVPSレンタルサーバ比較(高速SSD限定) 格安VPS比較(2025年最新版)

Python
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする コメントをキャンセル

email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)



検索
カテゴリー
新着記事
  • XServerVPS アニメ風 男の子 プログラミングをしている VPSを利用している 楽しそうにしている
    XServerVPSで証明書(SSL)を取得する方法
    2025年3月24日
    XServerVPS
  • レンタルサーバ アニメ風 女の子 楽しんでパソコンをしている 目がキラキラ
    WordPressがレンタルサーバよりVPSで利用する方がおすすめの理由
    2025年3月19日
    VPS
  • VPS レンタルサーバー アニメ風 女の子 プログラミングをしている VPSを利用している 楽しそうにしている
    VPSとクラウドの違いとは?初心者向けにわかりやすく解説
    2025年3月5日
    VPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSはWindows serverを利用できない。その理由と利用できるOSは?
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSでゲームを利用する環境はあるのか
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSのサイトの表示速度は他社に比べて早いのか?
    2025年3月4日
    シンVPS
目次
目次