Можно ли получить ключ значение filter_dict
объекта типа этого filter_dict.get_keyval("author")
:Вызов метода класса на объект Dict: AttributeError: «ДИКТ» объект не имеет атрибута «get_keyval»
import json
class Config(dict):
def open_json_file(self, json_string):
load_dict = json.loads(json_string)
return load_dict
def get_keyval(self, key):
search_key = self.load_dict.get(key)
return search_key
filter_dict = Config().open_json_file('{"author" : "Steve", "author_email" : ""}')
print(filter_dict.get_keyval("author"))
Получение :
AttributeError: 'dict' object has no attribute 'get_keyval'
ли следующий обходной путь (но это не то, что я хочу):
import json
class Config():
def open_json_file(self, json_string):
load_dict = json.loads(json_string)
return load_dict
def get_keyval(self, json_string, key):
search_key = json_string.get(key)
return search_key
filter_dict = Config().open_json_file('{"author" : "Steve", "author_email" : ""}')
print(Config().get_keyval(filter_dict, "author"))
Вы не используете методы класса правильно. Вы * не * хотите создавать новый экземпляр класса каждый раз, когда вы вызываете метод класса - это безумие. В этом случае вам даже не нужен метод класса, вам нужен статический метод. Поэтому добавьте декоратор '@ staticmethod', а затем вызовите метод без вызова конструктора. –
Зачем вам эти методы в первую очередь? Вы просто обертываете функциональность существующих объектов. 'filter_dict = json.loads ('...')' и 'print (filter_dict.get (" author "))' эквивалентно, не требуя класса. – MisterMiyagi