Je suis un peu confus avec JSON en Python. Pour moi, cela ressemble à un dictionnaire, et pour cette raison, j'essaie de le faire:
{
"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"
}
}
}
}
}
Mais quand je le fais print dict(json)
, cela donne une erreur.
Comment puis-je transformer cette chaîne en structure, puis appeler json["title"]
pour obtenir un "exemple de glossaire"?
.load()
analyse d'un objet fichier;.loads()
analyse un objet chaîne / 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)
je suis sûr que cela peut être amélioré, mais maintenant vous pouvez appelerd = read_json(j)
un «str» ou un «fichier» json.Quand j'ai commencé à utiliser json, j'étais confus et incapable de le comprendre pendant un certain temps, mais finalement j'ai obtenu ce que je voulais
Voici la solution simple
la source
loads(..)
sur'{"id": 2, "name": "hussain"}'
devrait aussi être bien comme la réponse acceptée.time
, pour info , j'essaie de faireloads
des chaînes dynamiques avec l'encodage utf-8 ...utiliser simplejson ou cjson pour les accélérations
la source
Si vous faites confiance à la source de données, vous pouvez utiliser
eval
pour convertir votre chaîne en dictionnaire:eval(your_json_format_string)
Exemple:
la source