1

我将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'}}}
4

1 回答 1

4

python中的字典是无序的集合:

最好将字典视为一组无序的键:值对,并要求键是唯一的(在一个字典中)。

但是,如果您从字符串中加载了 json,则可以将其直接加载到OrderedDict,请参阅:

于 2013-09-15T21:25:17.407 回答