我的JSON
代码存储在jso
变量中。
jso = {
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
每当我尝试获取数据或迭代JSON Object
时,它都会以相反的顺序打印数据,即object
,然后是其他参数。
例如。我执行:
>>> for k,v in jso.iteritems():
... print v
...
和我的输出:
输出
{'GlossList': {'GlossEntry': {'Abbrev': 'ISO 8879:1986', 'GlossDef': {'GlossSeeAlso': ['GML', 'XML']}, 'GlossSee': 'markup'}}, 'title': 'S'}
可以看出,虽然在'title':'S'
之前写了'GlossList' Object
,但数据仍以相反的顺序打印。我的意思是它应该有:
输出预期
{ 'title': 'S', 'GlossList': {'GlossEntry': {'Abbrev': 'ISO 8879:1986', 'GlossDef': {'GlossSeeAlso': ['GML', 'XML']}, 'GlossSee': 'markup'}}}
答案 0 :(得分:4)
Dictionaries是无序集合:
最好将字典视为一组无序的键:值 对,要求密钥是唯一的(在一个内 字典)。
但是,如果您已从字符串中加载了json,则可以将其直接加载到OrderedDict,请参阅: