ホームページ > バックエンド開発 > Python チュートリアル > Python の「json.dumps」を使用して JSON キーの順序を制御するにはどうすればよいですか?

Python の「json.dumps」を使用して JSON キーの順序を制御するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-27 05:17:03
オリジナル
378 人が閲覧しました

 How to Control JSON Key Order with Python's `json.dumps`?

「json.dumps」使用時の JSON キーの順序の不一致

Python では、JSON 変換では多くの場合、「json.dumps」を利用して変換する必要があります。辞書を JSON オブジェクトに変換します。ただし、ユーザーは、予想されるシーケンス (ID、名前、タイムゾーン) が実際の出力 (タイ​​ムゾーン、ID、名前) と異なるため、結果として得られる JSON キーの順序に不一致が発生する可能性があります。

この問題を解決し、希望するキーの順序には、次の 2 つのアプローチが利用可能です:

1. 「sort_keys」パラメータの使用:

「sort_keys」パラメータを True に設定すると、JSON キーがアルファベット順に並べ替えられます。たとえば、次のコード スニペットは、目的のキー順序を生成します:

<code class="python">import json

countries = []
countries.append({"id": 1, "name": "Mauritius", "timezone": 4})
countries.append({"id": 2, "name": "France", "timezone": 2})
countries.append({"id": 3, "name": "England", "timezone": 1})
countries.append({"id": 4, "name": "USA", "timezone": -4})

json_data = json.dumps(countries, sort_keys=True)
print(json_data)</code>
ログイン後にコピー

2。 OrderedDict の使用:

Python の "collections.OrderedDict" はキーの挿入順序を保持します。 OrderedDict を利用することで、期待されるキーの順序を実現できます:

<code class="python">from collections import OrderedDict

countries = OrderedDict()
countries["id"] = 1
countries["name"] = "Mauritius"
countries["timezone"] = 4

json_data = json.dumps(countries)
print(json_data)</code>
ログイン後にコピー

Python 3.6 以降では、キーワード引数の順序がデフォルトで保持され、より簡潔な構文が可能になります:

<code class="python">json_data = json.dumps(OrderedDict(id=1, name="Mauritius", timezone=4))
print(json_data)</code>
ログイン後にコピー

最後に、JSON 入力の場合、「object_pair_hook」パラメーターを利用してオブジェクトの順序を保持し、OrderedDict を生成できます:

<code class="python">import json

json_data = json.loads('{"id": 1, "name": "Mauritius", "timezone": 4}', object_pairs_hook=OrderedDict)
print(json_data)</code>
ログイン後にコピー

以上がPython の「json.dumps」を使用して JSON キーの順序を制御するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート