Python错误:'dict'对象不可调用

时间:2014-02-17 03:36:27

标签: python dictionary

我正在尝试加载我的数据,因此它存储在字典词典中。但是我收到了这个错误:

  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()

字典应该是

目标:字典[mid,dictionary2 [uid,urating]] 如字典[key,dictionary2 [key,value]]

我应该将self.user_rating行设置为等于什么?谢谢!


编辑(更新):当我尝试拨打

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

我在第

行收到错误
self.user_rating[mid][uid] = rating

这是在将行更改为self.user_rating [mid] = {}之后 但后来调用self.user_rating [mid] [uid] =另一种方法评分。

1 个答案:

答案 0 :(得分:1)

字典词典没有神奇的特殊语法。您只需使用常规字典语法两次即可获得内部字符串的值。

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

上的文档