首頁  >  文章  >  後端開發  >  使用「json.dumps」將 Python 字典轉換為 JSON 時如何控制鍵的順序?

使用「json.dumps」將 Python 字典轉換為 JSON 時如何控制鍵的順序?

Barbara Streisand
Barbara Streisand原創
2024-10-26 07:45:30655瀏覽

How do I control the order of keys when converting a Python dictionary to JSON using

使用“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中文網其他相關文章!

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