Verschiedene Fehler beim Parsen von JSON in Python

Versucht zu Parsen von json von einer url erfordert login. Darunter alle meine hier den code wie ich bin nicht sicher, wo der Fehler ist.

try: import simplejson as json
except ImportError: import json
import urllib2

username = 'user'
password = '1234'
url = "https://www.blah.com/someplace"

# set up the username/password/url request
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_mgr.add_password(None, "https://www.blah.com", username, password)
handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
request = urllib2.Request(url)
response = opener.open(request)

# option 1
json_object = json.loads(str(response))

#option 2
json_object = json.loads(response)

Wenn ich den code ausführen mit der option 1 (auskommentieren der option 2), bekomme ich diesen Fehler:

Traceback (most recent call last):
  File "jsontest.py", line 22, in <module>
    json_object = json.loads(str(request))
  File "/usr/lib/python2.7/dist-packages/simplejson/__init__.py", line 413, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 402, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 420, in raw_decode
    raise JSONDecodeError("No JSON object could be decoded", s, idx)
simplejson.decoder.JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0)

Wenn ich option 2:

Traceback (most recent call last):
  File "jsontest.py", line 23, in <module>
    json_object = json.loads(request)
  File "/usr/lib/python2.7/dist-packages/simplejson/__init__.py", line 413, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 402, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer

Mein Beispiel-JSON-gültig ist, so weit ich erzählen kann:

{"set1":[{"data1":"411","data2":"2033","data3":"1","data4":"43968077","data5":"217","data6":"106828","data7":[]}],
"set2":{"data8":"411","data9":"2033","data10":"43968077","data11":"217223360","data12":"106828"}}

simplejson version = 2.3.2,
Python-2.7.3

Sehr neu auf all dies, so dass alle Zeiger wäre sehr hilfreich.

warum versuchen Sie zum Lesen der request-Objekt? Wollen Sie nicht die Antwort? Antwort = opener.open(req);Daten = Antwort.read()
Nicht du meinst json_object = json.loads(response)? (nicht request?) Nur ein Tippfehler?
Ugh. Ja ich meinte Antwort. Bearbeitet.

InformationsquelleAutor acpigeon | 2012-09-07

Schreibe einen Kommentar