問題:
是否可以將JSON 資料載入至OrderedDict,保留的原始訂單鍵?
答案:
是的,可以使用 JSONDecoder 類別的 object_pairs_hook 參數將 JSON 載入到 OrderedDict 中。此參數指定要呼叫的函數,以從解碼的 JSON 資料建構物件。
透過傳遞 collections.OrderedDict 作為 object_pairs_hook 參數,您可以確保產生的物件是 OrderedDict,保留物件的順序JSON 資料中的鍵。
以下是如何使用此參數json.JSONDecoder:
decoder = json.JSONDecoder(object_pairs_hook=collections.OrderedDict) data = decoder.decode('{"foo":1, "bar": 2}') print(data)
這將輸出一個OrderedDict,其鍵的順序與JSON 資料中出現的順序相同:
OrderedDict([('foo', 1), ('bar', 2)])
您也可以將此參數與json 一起使用.loads可以達到相同的效果:
import json from collections import OrderedDict data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict) print(data)
最後,你可以將此參數與 json.load 一起使用來載入資料從檔案到 OrderedDict:
data = json.load(open('config.json'), object_pairs_hook=OrderedDict)
以上是JSON 資料可以載入到 OrderedDict 中,保持鍵順序嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!