使用“json.dumps”進行JSON 對象鍵排序
問題:
轉換時使用「json.dumps」將Python 字典轉換為JSON 物件時,鍵的順序可能與預期不符。所需的順序(例如“id”、“名稱”、“時區”)未維護。
解決方案:
1.排序鍵:
要指定所需的鍵順序,請將「sort_keys
json.dumps(countries, sort_keys=True)要指定所需的鍵順序,請將「sort_keys ”參數傳遞給“json.dumps”。此參數按升序對鍵進行排序。
2.使用「OrderedDict」:
為了精確控制按鍵順序,請使用「collections」模組中的「OrderedDict」而不是常規字典。 “OrderedDict”中鍵的順序在轉換為 JSON 時保留。
Python 3.7 及以下版本:import json from collections import OrderedDict ordered_countries = OrderedDict([("id", row.id), ("name", row.name), ("timezone", row.timezone)]) print(json.dumps(ordered_countries))
Python 3.8 及以上版本:
import json from collections import OrderedDict ordered_countries = OrderedDict() ordered_countries["id"] = row.id ordered_countries["name"] = row.name ordered_countries["timezone"] = row.timezone print(json.dumps(ordered_countries))
3。保留輸入順序 (JSON):
import json from collections import OrderedDict input_json = '{"a": 1, "b": 2}' ordered_json = json.loads(input_json, object_pairs_hook=OrderedDict)如果輸入已經是 JSON 對象,並且您希望在輸出中保留其鍵順序,請將“object_pairs_hook”參數傳遞給“json.loads”。此參數採用可呼叫函數,可呼叫函數根據 JSON 物件的鍵值對傳回「OrderedDict」。
以上是使用「json.dumps」將 Python 字典轉換為 JSON 時如何控制鍵的順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!