title: Various errors while parsing JSON in Python
body: <p>Attempting to parse json from a url requiring login. Including all my code here as I'm not sure where the error is.    </p>
  
  <pre><code>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)
  </code></pre>
  
  <p>If I run the code with option 1 (commenting out option 2), I get this error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "jsontest.py", line 22, in &lt;module&gt;
      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)
  </code></pre>
  
  <p>If I run option 2:</p>
  
  <pre><code>Traceback (most recent call last):
    File "jsontest.py", line 23, in &lt;module&gt;
      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
  </code></pre>
  
  <p>My sample JSON is valid as far as I can tell:</p>
  
  <blockquote>
    <p>{"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"}}</p>
  </blockquote>
  
  <p>simplejson version = 2.3.2,
  Python 2.7.3</p>
  
  <p>Very new to all this so any pointers would be very helpful. </p>