Ich weiß, es wurde stark dokumentiert und ich habe versucht, die .read().decode('utf-8')
überall wo ich denke, es sollte gehen, aber ich bin immer noch etwas fehlt und ich bin mir nicht sicher, wo sonst noch zu drehen. Ich habe ein Skript, das in Python 2.7 funktioniert, um ESRI-REST-URLs für Daten durch Abrufen der Objekt-IDs zu scrappen. In Python 3 scheint es jedoch nicht zu kooperieren. In Zeile 29 schlägt es kontinuierlich fehl (siehe unten). Jede Hilfe wäre sehr geschätzt.Python 3 Urlopen Probleme
version = json.loads(webresp.decode('utf-8'))['currentVersion']
ich immer bin immer diesen Fehler konsequent:
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
main(url, jsonfilelocation, jsonfilename)
File "\\SERVER\Projects\Python\TOUCH\esrirestjson.py", line 73, in main
oids = ESRIJSON().getobjrange(webconn, path)
File "\\SERVER\Projects\Python\TOUCH\esrirestjson.py", line 29, in getobjrange
version = json.loads(webresp.decode('utf-8'))['currentVersion']
File "C:\ArcGISPro\bin\Python\envs\arcgispro-py3\lib\json\__init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'
Können Sie Code hinzufügen, der das Beispiel der Klasse "ESRIJSON" darstellt? Ich kann definitiv die Antwort geben und den Code selbst schnell testen. Danke – jamescampbell
Dein Fehler ist hier: ** version = json.loads (webresp.decode ('utf-8')) ['currentVersion'] ** Was hast du probiert? - Warum müssten Sie den ganzen Code dafür schreiben? –
https://stackoverflow.com/questions/31708519/request-returns-bytes-and-im-failing-to-decode-them Vielleicht versuchen, .content hinzuzufügen? webconn.getresponse(). content –