Konvertieren von string zu JSON in Python?
Ich versuche, zu konvertieren einen string, erzeugt einen http-request mit urllib3.
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
data = json.load(data)
File "C:\Python27\Lib\json\__init__.py", line 286, in load
return loads(fp.read(),
AttributeError: 'str' object has no attribute 'read'
>>> import urllib3
>>> import json
>>> request = #urllib3.request(method, url, fields=parameters)
>>> data = request.data
Nun... Wenn Sie versuchen, die folgenden, bekomme ich diesen Fehler...
>>> json.load(data) # generates the error
>>> json.load(request.read()) # generates the error
Läuft type(data)
und type(data.read())
beide zurück <type 'str'>
data = '{"subscriber":"0"}}\n'
Ihre JSON-hat eine zusätzliche Halterung. Ist das so gewollt?
Was meinst du mit "Konvertieren von string zu JSON"? JSON ist ein string-format. Sie möchten konvertieren von JSON zu den entsprechenden nativen Python-Objekte (in diesem Fall ein dict zuordnen einer Zeichenkette zu einem anderen)? Oder einige nicht-JSON-string in ein JSON-string, oder etwas anderes?
In der Tat
Die zusätzliche Halterung war ein Tippfehler. Tut mir Leid, dass. Die Daten.read () - war ein Tippfehler.
Was meinst du mit "Konvertieren von string zu JSON"? JSON ist ein string-format. Sie möchten konvertieren von JSON zu den entsprechenden nativen Python-Objekte (in diesem Fall ein dict zuordnen einer Zeichenkette zu einem anderen)? Oder einige nicht-JSON-string in ein JSON-string, oder etwas anderes?
type(data.read())
nicht funktionieren sollte, wenn data
ist ein string.In der Tat
type(data.read())
ist garantiert zu erhöhen, die genau die gleiche Ausnahme wie json.load(data)
. Ich glaube er meinte type(request.read())
, die erfolgreich die Rückkehr der str
geben.Die zusätzliche Halterung war ein Tippfehler. Tut mir Leid, dass. Die Daten.read () - war ein Tippfehler.
InformationsquelleAutor bnlucas | 2013-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
json.load
lädt aus einer Datei-wie-Objekt. Sie entweder verwenden möchtenjson.loads
:Oder nutzen Sie einfach
json.load
auf die Anfrage, die eine Datei-wie-Objekt:Auch, wenn Sie das Anfragen Bibliothek, können Sie nur:
json.load(request.read())
injson.loads(request.read())
haben, rufen Sie einfachjson.load(request)
.Vielen Dank, bearbeitet.
Ich bin mit den Anforderungen der Bibliothek, aber es ist momentan auskommentiert. Arbeiten, die auf Google Apps Engine, die war nicht, die mir erlaubt, führen Sie es, und urlfetch Probleme auf die gleichen GET-Anforderung. So unterstützen Sie die raw-urllib3 und das ist, was ich Teste mit.
json.loads(request.data)
ist wokring,json.load(request)
nicht. Vielen Dank für die Hilfe.` json = - Anfragen.get(url).json()` funktionierte nicht für mich wie auch meine ursprüngliche Codezeile
pageContent = requests.get(url,verify=False).json()
InformationsquelleAutor Blender