Форум сайта python.su
Выполняю совершенно элементарные операции со словорем:
def DeleteRecord(self, id): rec = self.GetRecordFromID(id) idQuestion = rec['idQuestion'] idAnswer = rec['idAnswer'] idDlg = rec['id'] DataBaseModule.ExecuteSQL( "DELETE FROM questiontab WHERE id='"+str(idQuestion)+"'; "+ "DELETE FROM answertab WHERE id='"+str(idAnswer)+"'; "+ "DELETE FROM dlgtab WHERE id='"+str(idDlg)+"';")
Traceback (most recent call last):
File “…\modules\DataBaseForm.py”, line 104, in DeleteRecord
DlgTable().DeleteRecord(id)
File “…\modules\database\DlgTableModule.py”, line 78, in DeleteRecord
idQuestion = rec
TypeError: ‘int’ object is not subscriptable
Офлайн
Что-то совсем не типичное. Начнем с самого начала. Покажите на скриншоте, как запускаете из консоли и что получается. Кроме того нужен код в виде минимального размера примера, который вызывает у вас проблемы. Код нужно выложить сюда.
Офлайн
Решил проблему. Я так понял, что если запускать скрипт напрямую через интерпретатор, то он проверяет все возможные исходы в методах, даже если при данном запуске все проходит нормально, в то время как PyCharm отправляет ему только то, что происходит в данный момент.
FishHook
Код нужно выложить сюда.
def GetRecordFromID(self, id): for record in self.dlgT: if record['id'] == id: return record return {'id': 0 , 'idQuestion' : 0, 'idAnswer' : 0, 'idAction' : 0}
Офлайн
какой хороший повод научиться использовать дебаггер и разобраться со специфичной проблемой самостоятельно
Офлайн