下面的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'}}}
python中的Dictionaries是无序集合:
但是,如果已经从字符串加载了json,那么可以直接将其加载到OrderedDict,请参见:
相关问题 更多 >
编程相关推荐