2
私は基本的に配列を検索し、検索の結果を表ウィジェットに移そうとしています。他のすべてが動作しているようですが、コードを実行してすべての情報を入力すると、TypeErrorというエラーメッセージが表示され続けます。リストインデックスはstrではなく整数でなければなりません。これは私がdictsののdictを返す必要がありますPythonの表ウィジェットの問題
self.loadstudentArrayOfRecords()
のように見える
if(studentRecord['Student Name'] == self.ui.SearchlineEdit.text()):
studentsArray = self.loadstudentArrayOfRecords()
self.ui.DetailstableWidget.insertRow(0)
self.ui.DetailstableWidget.setItem(0,0,QtGui.QTableWidgetItem(studentsArray[self.ui.SearchlineEdit.text()]['Student Name']))
self.ui.DetailstableWidget.setItem(0,1,QtGui.QTableWidgetItem(studentsArray[self.ui.SearchlineEdit.text()]['Student Code']))
self.ui.DetailstableWidget.setItem(0,2,QtGui.QTableWidgetItem(studentsArray[self.ui.SearchlineEdit.text()]['Instrument Name']))
self.ui.DetailstableWidget.setItem(0,3,QtGui.QTableWidgetItem(studentsArray[self.ui.SearchlineEdit.text()]['Instrument Code']))
IVEは示唆しているが、同じ問題はまだ何が起こっているのかを試してみました、あなたはおそらくの辞書を返す方法を私に説明できますリストのdictsではなく、dicts? – BradBeighton
'self.loadstudentArrayOfRecords()'関数のコードと完全な例外トレースバック(変更を提案した後)を表示してください。また、デバッグスキルが不足しているように見えるので、どのようにこれを行うのか注意してください。コードを複数の行に分割すると、デバッグに役立ちます。つまり、どの行にコードが正確に区切られているかを知ることができます。また、変数を使用する行の前後に変数を出力してみてください。 – warvariuc
@ user1236314 - 一度に1行で多くのことを行っていたため、エラーの原因を知ることが難しくなりました。 warwarukが示唆したことを行うことで、エラーのある行を示すトレースバックが得られ、その問題が何であるかを簡単に確認できるはずです。 'studentsArray'が問題であることをトレースバックが示している場合、' loadstudentArrayOfRecords() 'の結果はリストであり、intインデックスでアクセスする必要があります。 'student'行がエラーであるとすれば、それは実際のリストです。基本的には、データ型をどこかで混乱させています。 – jdi