2017-06-22 7 views
0

オブジェクトにはサブスクリプションできないフォルトがありますが、equate内のすべてのアイテムが個別にチェックアウトされています。私に問題を与える式はこの'int'オブジェクトは添字付きではありませんが、関連する変数はすべて問題ありません。

oRetVal['Assay'] = tRS2[oCSNo_dx[aRow[oFields_dx['CycleRef']]][oFields_dx['Assay']]] 
  • TRS2 =レコードは
  • タプルとしてのSQLiteデータベースから返されoCSNo_dxはaRowは、値の配列をインデックス=
  • として使用されるオブジェクトを= dbテーブルから
  • 単一の行を表すoFields_dx前THIに直ちに行にインデックス

として使用される別のオブジェクトを= sエラーライン次のテストを実行します。試験oRetVal [「アッセイ」]から

print(oCSNo_dx[aRow[oFields_dx['CycleRef']]]) # get 1 
print(oFields_dx['Assay'])      # get 21 
print(tRS2[1][21])        # get 0.0 
print(tRS2[1])         # get single recordset (correct one) as expected 
print(tRS2[oCSNo_dx[aRow[oFields_dx['CycleRef']]]][oFields_dx['Assay']]) # get 0.0 
oRetVal['Assay']=0.0     # No Fault 
oRetVal['Assay']=tRS2[1][21]   # No fault  
print(oRetVal['Assay'])       # get 0.0 

がTRS2から値0.0をとるべきである[1]〜[21]完全式が、それは私にエラーを与えます。ただ、

s = oCSNo_dx[aRow[oFields_dx['CycleRef']]] 
p = oFields_dx['Assay'] 
oRetVal['Assay']=tRS2[s][p] 

私は今のところこれで行っている..私は、次のとエラーが発生しなかった走った確かに、私は心から、私は場合に1つのライナーを行うことができなかった理由です知っていただきたいと思います文法のことと私は再びそれに出くわす。アイデアの誰ですか?

+0

あなたの方程式から ']'を数える:最後に3。あなたのテストでは、最後に決して3つはありません。それはダニエルローズマンズの答えを導くヒントになるはずです。 –

答えて

2

角かっこは間違った場所にあります。あなたはtRS2[1][21]を探していませんが、tRS2[1[21]]、したがってエラーです。それは次のようにする必要があります。

tRS2[oCSNo_dx[aRow[oFields_dx['CycleRef']]]][oFields_dx['Assay']] 

実際には、このようにはしないでください。あなたが見つけたように、デバッグすることは不可能です。いくつかの中間変数を設定し、それらを検索で使用します。

+0

'1 [21]'?この魔法は何ですか? – obskyr

+0

@obskyr OPが得られているエラーの原因です。 –

+0

@obskyr:誤った ']'括弧の結果です。 'print'を使ってデバッグしようとすると大括弧が正しく配置されました。 –

関連する問題