mysqldb .. 'NoneType'オブジェクトは添え字化できません
-
28-10-2019 - |
質問
このコードは、cur.execute()
とdb.commit()
の行がコメント化されている場合に正常に機能します。つまり、クエリを出力するだけの場合、このプログラムはn行数実行されます。ここで問題が発生しているようです:
ジェネラコディセタグプレ
結果を挿入しようとすると、次のようになります。 ジェネラコディセタグプレ
コード: ジェネラコディセタグプレ
解決
エラーの理由は次のとおりです: ジェネラコディセタグプレ
これにより、player_categories_statistics
がNone
に設定されます。 None[0]
は例外を発生させます。
これが発生する唯一の理由は、クエリが行を返さないことです。つまり、テーブルが空です。テーブルに行を配置したことがないため、または何らかの方法でテーブルを削除した可能性が低いため、テーブルは空である可能性があります。
私は次のように可能性があります。あなたはsometable
に挿入し、players
から選択しています:
ジェネラコディセタグプレ
vs ジェネラコディセタグプレ
これが可能な唯一の理由は、次の行で何も返されていない場合でも、強制的にループさせるためです。 ジェネラコディセタグプレ
追加情報:
これは、データが実際に存在する場合に機能するはずであることを示すために、単一の行と単一の行を持つsqlite3データベースで実行した動作中のクエリです。 ジェネラコディセタグプレ
これは、別のテーブルがあり、行がないsqlite3データベースに対する別の有効なクエリです。 ジェネラコディセタグプレ
ご覧のとおり、上記の動作と同じです。
また、行数がDBで希望どおりに機能することを確認してください。たとえば、sqlite3では使用できません。 http://www.python.org/dev/peps/の行数仕様を参照してください。 pep-0249 /#cursor_objects およびMySQLdbドキュメントを参照してください。