Estoy un poco confundido con JSON en Python. Para mí, parece un diccionario, y por eso estoy tratando de hacer eso:
{
"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"
}
}
}
}
}
Pero cuando lo hago print dict(json)
, da un error.
¿Cómo puedo transformar esta cadena en una estructura y luego llamar json["title"]
para obtener un "glosario de ejemplo"?
.load()
analiza un objeto de archivo;.loads()
analiza un objeto string / unicode.def read_json(json_data): if (type(json_data) == str): return json.loads(json_data) elif (str(type(json_data)) == "<class '_io.TextIOWrapper'>"): return json.load(json_data)
estoy seguro de que esto se puede mejorar, pero ahora puedes invocard = read_json(j)
un json 'str' o 'file'.Cuando comencé a usar json, estaba confundido e incapaz de resolverlo por algún tiempo, pero finalmente obtuve lo que quería
Aquí está la solución simple
fuente
loads(..)
on'{"id": 2, "name": "hussain"}'
también debería estar bien, como la respuesta aceptada.time
, para su información, estoy tratandoloads
de cadenas dinámicas con codificación utf-8 ...use simplejson o cjson para acelerar
fuente
Si confía en la fuente de datos, puede usar
eval
para convertir su cadena en un diccionario:eval(your_json_format_string)
Ejemplo:
fuente