在python中迭代JSON对象

时间:2013-09-15 21:22:27

标签: python json python-2.7 dictionary iteration

我的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'}}}

1 个答案:

答案 0 :(得分:4)

python中的

Dictionaries是无序集合:

  

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

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