Python用モジュール「json」で「UnicodeDecodeError: ‘cp932’ codec can’t decode byte 0x8f in position 10: illegal multibyte sequence」とうエラーが出た場合の対処方法についてソースコード付きでまとめました。
JSON形式ファイルのロード時に発生するエラー
Python用モジュール「json」を用いて、JSON形式ファイルのロードをすると次のようなエラーが発生することがあります。
コード
# -*- coding:utf-8 -*- import json #JSON ファイルの読み込み f = open('test.json', 'r') json_data = json.load(f) print(json_data) f.close()
エラー
UnicodeDecodeError: 'cp932' codec can't decode byte 0x8f in position 10: illegal multibyte sequence
解決方法
原因は、Windows環境を使用しているとjson.loadメソッドが「デフォルトでcp932でコーディング」されるからだそうです。
そのため、UTF-8のJSONファイルを読み込み時は、UTF-8でコーディングする様にjson.loadメソッドに引数で次のように指定します。
# -*- coding:utf-8 -*- import json #JSON ファイルの読み込み f = open('test.json', 'r', encoding="utf-8_sig") json_data = json.load(f) print(json_data) f.close()
– | 関連記事 |
---|---|
1 | ■【Python】jsonファイルの扱い方 ■【Python】Webスクレイピング入門 ■【Python】ネットワークプログラミング入門 |
2 | ■Python入門 基本文法 |
コメント