首頁 >後端開發 >Python教學 >JSON 資料可以載入到 OrderedDict 中,保持鍵順序嗎?

JSON 資料可以載入到 OrderedDict 中,保持鍵順序嗎?

Barbara Streisand
Barbara Streisand原創
2024-12-06 01:48:10171瀏覽

Can JSON Data Be Loaded into an OrderedDict, Maintaining Key Order?

將JSON 載入到OrderedDict

問題:

是否可以將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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn