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

JSON 可以載入到 OrderedDict 中以保留鍵順序嗎?

Mary-Kate Olsen
發布: 2024-12-06 22:19:12
原創
856 人瀏覽過

Can JSON be Loaded into an OrderedDict to Preserve Key Order?

將 JSON 載入 OrderedDict

在 JSON 中,資料儲存在鍵值對中。不保證這些對的順序。然而,在某些情況下,保持鍵的順序至關重要。問題來了:JSON可以載入到有序字典(OrderedDict)中嗎?

用object_pairs_hook解決方案

是的,JSON可以載入到OrderedDict中。這是透過向 JSONDecoder 建構函數指定 object_pairs_hook 參數來實現的。 object_pairs_hook 參數採用一個為 JSON 物件中的每對鍵和值所呼叫的函數。此函數可以傳回一個有序字典,確保保留鍵的順序。下面是一個範例:

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
}
登入後複製

這是有效的,因為 object_pairs_hook 函數傳回 OrderedDict 物件,它維護鍵的順序。

替代使用json.load

同樣的方法可以應用在 json.load 函數:

data = json.load(open('config.json'), object_pairs_hook=OrderedDict)
登入後複製

以上是JSON 可以載入到 OrderedDict 中以保留鍵順序嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板