Jestem trochę mylony z JSON w Pythonie. Wydaje mi się, że to słownik, dlatego staram się to zrobić:
{
"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"
}
}
}
}
}
Ale kiedy to robię print dict(json)
, pojawia się błąd.
Jak mogę przekształcić ten ciąg w strukturę, a następnie wywołać, json["title"]
aby uzyskać „przykładowy słownik”?
.load()
analizuje obiekt pliku;.loads()
analizuje obiekt 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)
jestem pewien, że można to poprawić, ale teraz możesz wywołaćd = read_json(j)
json „str” lub „file”.Kiedy zacząłem używać Jsona, byłem zdezorientowany i przez pewien czas nie byłem w stanie go rozgryźć, ale w końcu dostałem to, czego chciałem.
Oto proste rozwiązanie
źródło
loads(..)
dalej'{"id": 2, "name": "hussain"}'
powinno być w porządku, tak jak zaakceptowana odpowiedź.time
, FYI, próbujęloads
od dynamicznych ciągów z kodowaniem utf-8 ...użyj simplejson lub cjson do przyspieszeń
źródło
Jeśli ufasz źródłu danych, możesz użyć go
eval
do konwersji łańcucha na słownik:eval(your_json_format_string)
Przykład:
źródło