使用Python 庫保留JSON 物件屬性的順序
使用json.dumps 將Python 物件轉換為JSON 字串時,輸出JSON 物件中鍵的順序可能與輸入Python 物件中鍵的原始順序不一致。如果需要特定的鍵順序,這可能會出現問題。
要解決此問題,您可以利用某些 Python 庫,它們提供了維護 JSON 物件中的鍵順序的工具。
使用 sort_keys 參數
一個簡單的解決方案是將 sort_keys 參數與 json.dumps 結合使用。透過將 sort_keys 設為 True,輸出 JSON 物件中的鍵將會按字母升序排序。
import json
json_string = json.dumps({'a': 1, 'b': 2}, sort_keys=True)
print(json_string) # Output: '{"a": 1, "b": 2}'
使用collections.OrderedDict
更好地控制鍵順序順序,可以使用collections.OrderedDict類別。 OrderedDict 保留鍵值對的插入順序,確保產生的 JSON 物件中的鍵順序與鍵值對新增至 OrderedDict 的順序相同。
from collections import OrderedDict
json_string = json.dumps(OrderedDict([('a', 1), ('b', 2)]))
print(json_string) # Output: '{"a": 1, "b": 2}'
保留輸入JSON 中的鍵順序
如果輸入是在JSON 格式中,您可以使用json.loads 中的object_pairs_hook 參數來指定將為JSON物件中的每個鍵值對呼叫的函數。這允許您建立一個 OrderedDict 來保留鍵順序。
import json
json_string = '{"a": 1, "b": 2}'
parsed_json = json.loads(json_string, object_pairs_hook=OrderedDict)
print(parsed_json) # Output: OrderedDict([('a', 1), ('b', 2)])
透過利用這些技術,您可以確保JSON 物件中屬性的順序是與您想要的順序一致,為Python 中的JSON 物件提供更大的彈性和控制。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3