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

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

Barbara Streisand
リリース: 2024-10-26 07:45:30
オリジナル
667 人が閲覧しました

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

「json.dumps」による JSON オブジェクト キーの順序付け

問題:

変換時「json.dumps」を使用して Python 辞書を JSON オブジェクトに変換すると、キーの順序が期待どおりにならない場合があります。必要な順序 (例: "id"、"name"、"timezone") が維持されていません。

解決策:

1.並べ替えキー:

希望のキー順序を指定するには、「sort_keys」パラメーターを「json.dumps」に渡します。このパラメータはキーを昇順に並べ替えます。

json.dumps(countries, sort_keys=True)
ログイン後にコピー

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):

入力がすでに JSON オブジェクトであり、出力でそのキー順序を保持したい場合は、「object_pairs_hook」パラメーターを「json.loads」に渡します。このパラメーターは、JSON オブジェクトのキーと値のペアに基づいて「OrderedDict」を返す呼び出し可能オブジェクトを受け取ります。

import json
from collections import OrderedDict

input_json = '{"a": 1, "b": 2}'
ordered_json = json.loads(input_json, object_pairs_hook=OrderedDict)
ログイン後にコピー

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

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