PythonでJSONファイルを扱う際、UnicodeDecodeError
というエラーに遭遇することがあります。このエラーは、ファイルの文字コードとPythonの文字コードが一致しない場合に発生します。
文字コードとは?
文字コードは、それぞれの文字に割り振られた識別用のコードのことで、コンピュータで文字を表現するときに必要になってきます。コンピュータやファイルの種類によって文字コードは変わってくるので、ファイルの読み込みや、ファイルの保存の際に意識しておく必要があります。
UnicodeDecodeErrorとは?
UnicodeDecodeError
は、文字コードを文字列に変換することができないことで生じるエラーです。具体的には、指定した文字コードと読み込み文字コードが異なる場合に発生します。
UnicodeDecodeErrorの解決方法
encodingを指定する
読み込みたいファイルの文字コードが違う場合には、encoding
を指定するのが良いです。次のように、ファイルを読み込む際に、関数の引数にencoding
を指定すると良いでしょう。
import json
with open("./Files/CD_Data.json", encoding="utf8") as file:
reader = json.load(file)
print(reader)
プログラムの文字コードを変える
Pythonのプログラムファイルの文字コードの設定を変える場合は、プログラムファイルの冒頭に次の記述を記載します。
# -*- coding: utf-8 -*-
以上、PythonでJSONファイルを扱う際のUnicodeDecodeError
の解決方法について説明しました。この知識を持っておけば、実務でエラーが発生したときに対応できるようになります。