これが私の最初の質問へのリンクです:辞書からクラスインスタンスを作成していますか?
そのため、クラスにないキーを保持する辞書からクラス インスタンスを作成しようとしています。例えば:
class MyClass(object):
def __init__(self, value1, value2):
self.attr1 = value1
self.attr2 = value2
dict = {'attr1': 'value1', 'attr2': 'value2', 'redundant_key': 'value3'}
クラスインスタンスを作成する前に、これredundant_key
をdictから削除する必要があります
dict.pop('redundant_key', None)
new_instance = MyClass(**dict)
問題は、いくつかのクラスと多くのキーを持ついくつかのディクテーションがあることです (ディクテーションとして表される json 形式の応答がいくつかあり、この json 応答からオブジェクトを作成したい)。前の質問から暫定的な解決策をすでに見つけました-冗長キーを削除する方法。必要なキーのみを使用して、古い辞書から新しい辞書を作成できます。
new_dict = {key: old_dict[key] for key in allowed_keys}
コードは次のとおりです。
class MyClass(object):
def __init__(self, value1, value2):
self.attr1 = value1
self.attr2 = value2
dict = {'attr1': 'value1', 'attr2': 'value2', 'redundant_key': 'value3'}
new_instance = MyClass(**{key: dict[key] for key in allowed_keys})
今必要なのは を取得することだけallowed_keys
です。質問 - クラスインスタンスを作成せずにクラスインスタンス属性を取得する方法はありますか?