HTTPResponse-Objekt - JSON-Objekt muss "str" sein, nicht "bytes"

Ich habe versucht, eine kleine Python-Bibliothek namens zu aktualisierenlibpynexmo mit Python 3 arbeiten.

Ich bin auf dieser Funktion festgefahren:

def send_request_json(self, request):
    url = request
    req =  urllib.request.Request(url=url)
    req.add_header('Accept', 'application/json')
    try:
        return json.load(urllib.request.urlopen(req))
    except ValueError:
        return False

Wenn es darum geht, antwortet json mit:

TypeError: the JSON object must be str, not 'bytes'

Ich habe an ein paar Stellen gelesen, dass fürjson.load Sie sollten Objekte übergeben (In diesem Fall einHTTPResponse Objekt) mit a.read() angebracht, aber es funktioniert nichtHTTPResponse Objekte.

Ich weiß nicht, wohin ich als nächstes gehen soll, aber da mein gesamtes Skript mit 1500 Zeilen frisch in Python 3 konvertiert wurde, habe ich keine Lust, auf 2.7 zurückzukehren.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage