属性ベースのデータ取得のために、ネストされた Python 辞書をオブジェクトのような構造に変換するにはどうすればよいですか?

DDD
リリース: 2024-11-11 08:50:02
オリジナル
1006 人が閲覧しました

How can I convert a nested Python dictionary into an object-like structure for attribute-based data retrieval?

入れ子になった Python 辞書のオブジェクトへの変換

アクセサー メソッドは、複雑なデータ構造からデータを取得する便利な方法を提供し、直感的なオブジェクト指向のナビゲーションを可能にします。ただし、Python のネイティブ辞書には本質的にこの機能がありません。

問題: ネストされた Python 辞書をオブジェクトのような構造に変換して、属性ベースのデータ取得を可能にするにはどうすればよいですか?

答え:

Namedtuples の使用 (Python 2.6 以降)

Python の新しいバージョン (2.6 以降) の場合、namedtuple はエレガントなソリューション。これらは、名前付きフィールドを持つ不変のカスタム データ型を表します。

from collections import namedtuple

MyStruct = namedtuple('MyStruct', 'a b d')
s = MyStruct(a=1, b={'c': 2}, d=['hi'])

print(s.a, s.b['c'], s.d[0])
# Output: 1 2 hi
ログイン後にコピー

カスタム Struct クラスの使用

または、次の動作を模倣するカスタム Struct クラスを作成できます。オブジェクト:

class Struct:
    def __init__(self, **entries):
        self.__dict__.update(entries)

args = {'a': 1, 'b': 2}
s = Struct(**args)

print(s.a, s.b)
# Output: 1 2
ログイン後にコピー

以上が属性ベースのデータ取得のために、ネストされた Python 辞書をオブジェクトのような構造に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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