ホームページ > バックエンド開発 > Python チュートリアル > キーの順序を維持しながら、JSON データを OrderedDict にロードできますか?

キーの順序を維持しながら、JSON データを OrderedDict にロードできますか?

Barbara Streisand
リリース: 2024-12-06 01:48:10
オリジナル
194 人が閲覧しました

Can JSON Data Be Loaded into an OrderedDict, Maintaining Key Order?

OrderedDict への JSON の読み込み

質問:

JSON データを OrderedDict に読み込み、本来の注文キー?

答え:

はい、JSONDecoder クラスの object_pairs_hook 引数を使用して、JSON を OrderedDict にロードすることができます。この引数は、デコードされた JSON データからオブジェクトを構築するために呼び出される関数を指定します。

collections.OrderedDict を object_pairs_hook 引数として渡すことで、結果のオブジェクトが OrderedDict であることを確認し、順序を維持できます。 JSON データ内のキー。

この引数を次のように使用する方法は次のとおりです。 json.JSONDecoder:

decoder = json.JSONDecoder(object_pairs_hook=collections.OrderedDict)
data = decoder.decode('{"foo":1, "bar": 2}')
print(data)
ログイン後にコピー

これは、JSON データに出現したのと同じ順序でキーを含む OrderedDict を出力します:

OrderedDict([('foo', 1), ('bar', 2)])
ログイン後にコピー

この引数を json で使用することもできます.loads を使用して同じ結果を実現します:

import json
from collections import OrderedDict

data = json.loads('{"foo":1, "bar": 2}', object_pairs_hook=OrderedDict)
print(data)
ログイン後にコピー

最後に、この引数を json.load で使用できます。ファイルから OrderedDict にデータをロードするには:

data = json.load(open('config.json'), object_pairs_hook=OrderedDict)
ログイン後にコピー

以上がキーの順序を維持しながら、JSON データを OrderedDict にロードできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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