Convert string to JSON using Python
我对Python中的JSON有点困惑。在我看来,它就像一本字典,因此我正努力做到这一点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | { "glossary": { "title":"example glossary", "GlossDiv": { "title":"S", "GlossList": { "GlossEntry": { "ID":"SGML", "SortAs":"SGML", "GlossTerm":"Standard Generalized Markup Language", "Acronym":"SGML", "Abbrev":"ISO 8879:1986", "GlossDef": { "para":"A meta-markup language, used to create markup languages such as DocBook.", "GlossSeeAlso": ["GML","XML"] }, "GlossSee":"markup" } } } } } |
但当我做
如何将这个字符串转换成一个结构,然后调用
1 2 3 4 | import json d = json.loads(j) print d['glossary']['title'] |
当我开始使用JSON的,出现了一个无法和它的一些时间,但最终我得到了我想要的这里是最简单的解决方案
1 2 3 4 5 | import json m = {'id': 2, 'name': 'hussain'} n = json.dumps(m) o = json.loads(n) print o['id'], o['name'] |
或是用simplejson cjson speedups
1 2 3 4 5 6 7 | import simplejson as json json.loads(obj) or cjson.decode(obj) |
如果你信托的数据源,你可以使用你的字符串转换成
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | >>> 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'> |