Deje que el objeto JSON acepte bytes o permita que urlopen cadenas de salida
Con Python 3 solicito un documento json desde una URL.
response = urllib.request.urlopen(request)
Losresponse
object es un objeto similar a un archivo conread
yreadline
métodos. Normalmente, un objeto JSON se puede crear con un archivo abierto en modo de texto.
obj = json.load(fp)
Lo que me gustaría hacer es:
obj = json.load(response)
Sin embargo, esto no funciona ya que urlopen devuelve un objeto de archivo en modo binario.
Una solución alternativa es, por supuesto:
str_response = response.read().decode('utf-8')
obj = json.loads(str_response)
pero esto se siente mal ...
¿Hay una mejor manera de transformar un objeto de archivo de bytes en un objeto de archivo de cadena? ¿O me faltan algunos parámetros para cualquieraurlopen
ojson.load
para dar una codificación?