Convert JSON string to dict using Python

The Question :

431 people think this question is useful

I’m a little bit confused with JSON in Python. To me, it seems like a dictionary, and for that reason I’m trying to do that:

        "title": "example glossary",
            "title": "S",
                    "ID": "SGML",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"]
                    "GlossSee": "markup"

But when I do print dict(json), it gives an error.

How can I transform this string into a structure and then call json["title"] to obtain “example glossary”?

The Question Comments :

The Answer 1

777 people think this answer is useful


import json

d = json.loads(j)
print d['glossary']['title']

The Answer 2

101 people think this answer is useful

When I started using json, I was confused and unable to figure it out for some time, but finally I got what I wanted
Here is the simple solution

import json
m = {'id': 2, 'name': 'hussain'}
n = json.dumps(m)
o = json.loads(n)
print(o['id'], o['name'])

The Answer 3

21 people think this answer is useful

use simplejson or cjson for speedups

import simplejson as json




The Answer 4

19 people think this answer is useful

If you trust the data source, you can use eval to convert your string into a dictionary:



>>> x = "{'a' : 1, 'b' : True, 'c' : 'C'}"
>>> y = eval(x)

>>> print x
{'a' : 1, 'b' : True, 'c' : 'C'}
>>> print y
{'a': 1, 'c': 'C', 'b': True}

>>> print type(x), type(y)
<type 'str'> <type 'dict'>

>>> print y['a'], type(y['a'])
1 <type 'int'>

>>> print y['a'], type(y['b'])
1 <type 'bool'>

>>> print y['a'], type(y['c'])
1 <type 'str'>

Add a Comment