Преобразование строки в JSON с помощью Python
Я немного запутался с JSON в Python.
Мне это кажется словарем, и по этой причине
Я пытаюсь это сделать:
{
"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"
}
}
}
}
}
но когда я печатаю dict (json), это дает ошибку.
Как я могу преобразовать эту строку в структуру, а затем вызвать json["title"], чтобы получить "пример глоссария"?
4 ответов:
когда я начал использовать json, я был смущен и не мог понять это в течение некоторого времени, но, наконец, я получил то, что хотел
Вот простое решениеimport json m = {'id': 2, 'name': 'hussain'} n = json.dumps(m) o = json.loads(n) print o['id'], o['name']
используйте simplejson или cjson для ускорения
import simplejson as json json.loads(obj) or cjson.decode(obj)
Если Вы доверяете источнику данных, вы можете использовать
evalчтобы преобразовать строку в словарь:
eval(your_json_format_string)пример:
>>> 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'>
Comments