错误来自publishDB = defaultdict(defaultdict({}))
,我想创建一个像{subject1:{student_id:{assignemt1:marks, assignment2:marks,finals:marks}} , {student_id:{assignemt1:marks, assignment2:marks,finals:marks}}, subject2:{student_id:{assignemt1:marks, assignment2:marks,finals:marks}} , {student_id:{assignemt1:marks, assignment2:marks,finals:marks}}}
这样的数据库。我试图将其填充为DB[math][10001] = a dict
,后来又读出为d = DB[math][10001]
。由于我在办公室计算机上,因此无法尝试其他模块。
我这样做是否正确?
最佳答案
这样的嵌套dict
结构可以使用递归defaultdict
“树”来实现:
def tree():
return defaultdict(tree)
publishDB = tree()
在每个级别,将根据需要使用
tree
实例化defaultdict,而是可调用的零参数。然后,您可以简单地分配标记:
publishDB[subject][student][assignment] = mark
关于python - TypeError:第一个参数必须是可调用的,defaultdict,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40712753/