json.loads() failing
===

So I'm working on a django project which uses a celery task queue to make HTTP requests.

In my celery task code I have:

    json.loads('{"content-type": "application/json"}')
    print test.headers
    json.loads(test.headers)

Which results in:

    [2012-07-19 17:02:38,536: WARNING/PoolWorker-4] '{"content-type": "application/json"}'
    [2012-07-19 17:02:38,569: ERROR/MainProcess] Task core.tasks.test_run[f304bcdd-72b3-4dd5-9abb-927dc29e7f65] raised exception: ValueError('No JSON object could be decoded',)
    Traceback (most recent call last):
      File "/usr/local/bin/lib/python2.7/site-packages/celery/task/trace.py", line 212, in trace_task
        R = retval = fun(*args, **kwargs)     
      File "/opt/ironman_deploy/Ironman/core/tasks.py", line 18, in test_run
        json.loads(test.headers)
      File "/usr/local/bin/lib/python2.7/json/__init__.py", line 326, in loads
        return _default_decoder.decode(s)
      File "/usr/local/bin/lib/python2.7/json/decoder.py", line 366, in decode
        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
      File "/usr/local/bin/lib/python2.7/json/decoder.py", line 384, in raw_decode
        raise ValueError("No JSON object could be decoded")
    No JSON object could be decoded: No JSON object could be decoded

I have literally no idea what's going on... clearly json can decode the string, because it doesn't fail 2 lines above, however when I pass the string in by reference it seems to choke. 

Could anyone shed light on this for me?