web-dev-qa-db-ja.com

json.load()関数が奇妙な 'UnicodeDecodeError:' ascii 'コーデックがデコードできない'エラーを出す

python .loads()関数を使用してテキストファイルに保存したJSONファイルを読み取ろうとしています。後でJSONを解析して特定の値を取得します。

このエラーメッセージが何度も表示されます。グーグルすると結果が出ない。

UnicodeDecodeError: 'ascii'コーデックは位置> 85298のバイト0xc2をデコードできません:序数が範囲(128)にありません

ここに完全なエラーメッセージがあります:

トレースバック(最後の最新の呼び出し):ファイル ".../FirstDegreeKanyeScript.py"、> line 10、in data = json.load(data_file)File> "/ Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/in> it。py "、265行目、load return load(fp.read()、File>"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/encodings> /ascii.py "、26行目、デコードでreturn codecs.ascii_decode(input、> self.errors)[0] UnicodeDecodeError: 'ascii' codec ca n't decode byte 0xc2> in position 85298 :序数が範囲外(128)

これが私のコードです:

_import json
from pprint import pprint

with
open("/Users/.../KanyeAllSongs.txt") as data_file:
    data=json.load(data_file)

pprint(data)
_

_json.load_の下にdata.decode('utf-8')を追加しようとしましたが、それでも同じエラーが発生します。

問題になる可能性のあるアイデアはありますか?

16
RandyV

open呼び出しでエンコードを指定します。

# encoding is a keyword argument
open("/Users/.../KanyeAllSongs.txt", encoding='utf-8') as data_file:
    data=json.load(data_file)
35
Alik