Deixe que o objeto JSON aceite bytes ou deixe urlopen as seqüências de saída
Com o Python 3, estou solicitando um documento json a partir de uma UR
response = urllib.request.urlopen(request)
Oresponse
object é um objeto semelhante a um arquivo comread
ereadline
métodos. Normalmente, um objeto JSON pode ser criado com um arquivo aberto no modo de text
obj = json.load(fp)
O que eu gostaria de fazer é:
obj = json.load(response)
Isto, no entanto, não funciona, pois o urlopen retorna um objeto de arquivo no modo binári
Uma solução alternativa é, obviamente:
str_response = response.read().decode('utf-8')
obj = json.loads(str_response)
mas isso parece ruim ...
Existe uma maneira melhor de transformar um objeto de arquivo de bytes em um objeto de arquivo de string? Ou estou faltando algum parâmetro paraurlopen
oujson.load
para dar uma codificação?