Avec Python 3, je demande un document json à partir d'une URL.
response = urllib.request.urlopen(request)
L' response
objet est un objet de type fichier avec des méthodes read
et readline
. Normalement, un objet JSON peut être créé avec un fichier ouvert en mode texte.
obj = json.load(fp)
Ce que je voudrais faire, c'est:
obj = json.load(response)
Cela ne fonctionne cependant pas car urlopen renvoie un objet fichier en mode binaire.
Un contournement est bien sûr:
str_response = response.read().decode('utf-8')
obj = json.loads(str_response)
mais ça fait du mal ...
Existe-t-il un meilleur moyen de transformer un objet de fichier d'octets en un objet de fichier de chaîne? Ou est-ce que je manque des paramètres pour l'un urlopen
ou l' autre json.load
pour donner un encodage?