Ошибка Python: объект ‘dict’ не может быть вызван

Вопрос: Я пытаюсь загрузить мои данные, чтобы он хранился в словаре словарей. Но я получаю эту ошибку: self.user_rating(mid, {} ) #Dictionary of dictionaries = urating TypeError: 'dict' object is not callable Это код этого конкретного метода. def load_r(self,file): f = open(file) for line in f: line = line.rstrip() components = line.split("::") uid = components[0] mid

Вопрос:

Я пытаюсь загрузить мои данные, чтобы он хранился в словаре словарей. Но я получаю эту ошибку:

self.user_rating(mid, {} ) #Dictionary of dictionaries = urating TypeError: ‘dict’ object is not callable

Это код этого конкретного метода.

def load_r(self,file): f = open(file) for line in f: line = line.rstrip() components = line.split(«::») uid = components[0] mid = components[1] urating = components[2] self.user_rating(mid, {} ) ###Line of interest f.close()

Словарь должен быть чем-то вроде

GOAL: словарь [mid, dictionary2 [uid, urating]] как в словаре [key, dictionary2 [key, value]]

Предполагаю ли я, что личность self.user_rating равна чему-то? Спасибо!

EDIT (обновление): когда я пытаюсь позвонить

self.mdb.set_user_m_rating(41, 787, 2)

Я получаю сообщение об ошибке в строке

self.user_rating[mid][uid] = rating

Это происходит после изменения строки на self.user_rating [mid] = {}, но позже вызывается self.user_rating [mid] [uid] = рейтинг другим способом.

Лучший ответ:

Не существует специального специального синтаксиса для словарей словарей. Вы просто используете обычный синтаксис словаря дважды, чтобы получить значения внутренних dicts.

self.user_rating – это self.user_rating.

Вы подыскиваете такой указ

self.user_rating[mid] # the value here is a subdict

и поэтому значение в поддиале определяется путем добавления другого ключевого поиска

self.user_rating[mid][uid]

И, конечно же, создать пустой указ

self.user_rating[mid] = {}

Добавьте рейтинг, подобный этому.

self.user_rating[mid][uid] = rating

Если uid может уже иметь значение, вы можете проверить это

if uid in self.user_rating[mid]: self.user_rating[mid][uid] = rating else: self.user_rating[mid] = {uid: rating}

Когда вы разработали эти основы, вы должны ознакомиться с документами по collections.defaultdict

Оцените статью
Добавить комментарий