JSON 可以載入 OrderedDict 嗎?
在 JSON 序列化中,OrderDicts 可以是用作輸入。然而,出現了一個關鍵問題:它們也可以充當輸出嗎?如果是這樣,流程是什麼?
JSON 作為 OrderedDicts 中的輸出
是的,OrderDicts 確實可以用作 JSON 輸出。這是透過在 JSONDecoder 中指定 object_pairs_hook 參數來實現的。如文件中所述,這是以下範例中示範的方法:
>>> json.JSONDecoder(object_pairs_hook=collections.OrderedDict).decode('{"foo":1, "bar": 2}') OrderedDict([('foo', 1), ('bar', 2)]) >>>
替代JSON 輸出參數
為了方便起見,您也可以傳遞此參數直接到json.loads (不需要Decoder 實例):
>>> import json >>> from collections import OrderedDict >>> data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict) >>> print json.dumps(data, indent=4) { "foo": 1, "bar": 2 } >>>
載入將JSON 資料載入 OrderedDicts
類似地,可以使用 json.load 以相同的方式將 JSON 資料載入 OrderDicts :
>>> data = json.load(open('config.json'), object_pairs_hook=OrderedDict)
以上是JSON 輸出可以是 OrderedDict 嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!