Python错误:“dict”对象不是callab

2024-06-26 02:17:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图加载我的数据,以便将其存储在字典中。但我有个错误:

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

字典应该是

目标:dictionary[mid,dictionary2[uid,uring] 如字典[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]=rating。


Tags: of方法keyselfuid字典linecomponents
1条回答
网友
1楼 · 发布于 2024-06-26 02:17:10

词典没有神奇的特殊语法。只需使用普通字典语法两次就可以得到内部dict的值。

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上的文档

相关问题 更多 >