簡體   English   中英

在python中迭代JSON對象

[英]Iterating over JSON object in python

我將下面的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中的字典是無序集合:

最好將字典視為一組無序的鍵:值對,並要求鍵是唯一的(在一個字典中)。

但是,如果您已從字符串中加載json,則可以將其直接加載到OrderedDict ,請參閱:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM