Python TypeError:'int'对象没有属性'__getitem__'

时间:2017-05-01 10:00:43

标签: python

我学习了python中的情感识别程序

我尝试了here source,我运行了代码

('size of training set is:', 379, 'images')
predicting classification set
Traceback (most recent call last):
File "prepare_model.py", line 72, in <module>
correct = run_recognizer()
File "prepare_model.py", line 63, in run_recognizer
correct = sum(1 for id, image in enumerate(prediction_data) if fishface.predict(image)[0] == prediction_labels[id])
ict(image)[0] == prediction_labels[id])
File "prepare_model.py", line 63, in <genexpr>
correct = sum(1 for id, image in enumerate(prediction_data) if fishface.predict(image)[0] == prediction_labels[id])
TypeError: 'int' object has no attribute '__getitem__'

我使用Ubuntu 16.04LTS 64bit / python 2.7 / opencv3.1.0 + contrib

请帮助我......

我在第63行改变了

correct = sum(1 for id, image in enumerate(prediction_data) if fishface.predict(image)[0] == prediction_labels[id])

correct = sum(1 for id, image in enumerate(prediction_data) if fishface.predict[image][0] == prediction_labels[id])

但不起作用......

如何修复?

1 个答案:

答案 0 :(得分:0)

这一行:

firebase.database().ref('...').once('value').then(function(snapshot) {
  ...
});

显示您预测是一个功能。 当您将(...)更改为[...]时,python会将fishface.predict(image)[0] ... 解释为必须将第一个元素(索引0)设置为值的列表。因此出现上述错误。 所以在Python中,x(...)是一个函数调用,而x [..]是一个列表或字典,在其上需要一个元素。