web-dev-qa-db-fra.com

La fonction json.load () donne une étrange erreur «UnicodeDecodeError: le codec« ascii »ne peut pas décoder»

J'essaie de lire un fichier JSON que j'ai enregistré dans un fichier texte en utilisant la fonction python .loads (). Je vais par la suite analyser le JSON pour obtenir une valeur spécifique.

Je reçois toujours ce message d'erreur. Quand je le google, il n'y a aucun résultat.

UnicodeDecodeError: le codec 'ascii' ne peut pas décoder l'octet 0xc2 en position> 85298: l'ordinal n'est pas dans la plage (128)

Voici le message d'erreur complet:

Traceback (dernier appel le plus récent): Fichier ".../FirstDegreeKanyeScript.py",> ligne 10, dans data = json.load (data_file) File> "/ Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/json/in> it. py ", ligne 265, dans les charges de retour de charge (fp.read (), Fichier>"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/encodings> /ascii.py ", ligne 26, dans le retour de décodage codecs.ascii_decode (entrée,> self.errors) [0] UnicodeDecodeError: le codec 'ascii' ne peut pas décoder l'octet 0xc2> en position 85298 : ordinal hors de portée (128)

Voici mon code:

import json
from pprint import pprint

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

pprint(data)

J'ai essayé d'ajouter data.decode('utf-8') sous le json.load, Mais j'obtiens toujours la même erreur.

Des idées quel pourrait être le problème?

16
RandyV

Spécifiez l'encodage dans l'appel open.

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