我在Python中对JSON感到有些困惑。在我看来,它似乎像个字典,因此我正在尝试这样做:
{
"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"
}
}
}
}
}
但是当我执行print(dict(json))
时,会出现错误。
我该如何将这个字符串转换为一个结构,并调用json["title"]
来获取"example glossary"
?
.load()
与.loads()
的区别在于,.load()
解析文件对象,而.loads()
解析字符串 / Unicode 对象。 - fyngyrzdef read_json(json_data): if isinstance(json_data, str): return json.loads(json_data) elif hasattr(json_data, 'read'): return json.load(json_data)
我相信这可以得到改进,但现在你可以在一个json字符串或文件上调用d = read_json(j)
。 - Jacques Mathieuisinstance(json_data, io.TextIOBase)
这样的方式呢?有很多类型的行为类似于文件,我猜捕获这些类型也会很有用。 - Christian