python, Json and string indices must be integers, not str

Meir picture Meir · Apr 30, 2012 · Viewed 9.3k times · Source

I am using Python, and I sent a request to a URL and received a reply using httplib2. The reply I got was in JSon, how do I access a specific parameter. What I have at the moment is:

resp, content = parser.request(access_token_uri, method = 'POST', body = params, headers =     headers)
raise Exception(content['access_token'])

and I get the error

string indices must be integers, not str

How do I do it?

Thanks

Answer

IainS picture IainS · Apr 30, 2012

Well if the response type is json and it comes in type str.

If you are running 2.4 of Python use simplejson if 2.6 use json:

import json
# Your code
  retdict = json.loads(content)

Then treat it like a dictionary.

accesstoken = retdict['access_token']