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

「json.dumps」を使用して Python 辞書を変換するときに、JSON オブジェクト内のキーの順序を制御するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-29 21:17:30
オリジナル
1030 人が閲覧しました

How can you control the order of keys in JSON objects when converting Python dictionaries using `json.dumps`?

「json.dumps」を使用した JSON オブジェクト内の項目の並べ替え

「json.dumps」関数を使用して Python を変換すると、JSON オブジェクト内の順序付けされていないキーの問題が発生します辞書を JSON 形式に変換すると、予期しない順序付けが発生します。これは、Python 辞書と JSON オブジェクトの両方に固有の順序付けがないために発生します。

これに対処するには、「json.dumps」内で「sort_keys」パラメータを使用してキーをアルファベットの昇順に並べ替えます。以下に例を示します:

<code class="python">import json

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

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

これにより、ソートされたキーを使用して目的の出力が生成されます:

<code class="json">[
  {"id": 1, "name": "Mauritius", "timezone": 4},
  {"id": 2, "name": "France", "timezone": 2},
  {"id": 3, "name": "England", "timezone": 1},
  {"id": 4, "name": "USA", "timezone": -4}
]</code>
ログイン後にコピー

別のオプションには、キーの順序を維持する「collections.OrderedDict」クラスの使用が含まれます。値のペア。以下に例を示します:

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

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

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

これにより、順序付けされた JSON 出力も生成されます:

<code class="json">{"id": 1, "name": "Mauritius", "timezone": 4}</code>
ログイン後にコピー

Python 3.6 以降、キーワード引数の順序はデフォルトで保持され、より効率的な方法が提供されます。希望の順序を達成します:

<code class="python">countries = {
    "id": 1,
    "name": "Mauritius",
    "timezone": 4
}

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

最後に、入力が JSON として提供される場合、「object_pairs_hook」引数を「json.loads」内で使用して順序を「OrderedDict」として保存できます:

<code class="python">json_input = '{"a": 1, "b": 2}'

ordered_dict = json.loads(json_input, object_pairs_hook=OrderedDict)
print(ordered_dict)</code>
ログイン後にコピー

これにより、キーと値のペアが JSON 入力で提供された元の順序のままになります。

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

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