どういうわけかコピペしたスクリプトとかで、片方では問題なく実行できたのに、もう片方がタイトルのようなエラーが出る事例がありました。ただ、片方はコマンドラインで実行、もう片方は記憶ではjupyter notebookだったような気がしなくもないですが…。色々いじって解決できたので、今後のためにメモしておきます。
プレースホルダーを使う時にエラーが発生している模様
どうも、このエラーにはパターンがあるようで、以下のように型に関するエラーのようです。
python ‘float64’ cannot be converted to a mysql type とか
python ‘tuple’ cannot be converted to a mysql type とかあるらしいんですけど、
今回私に出てきたエラーは以下
MySQL Error: Failed processing format-parameters Python ‘int64’ cannot be converted to a mysql type
try catch文で出てきたエラーで、どうもMysql用の型に変換できなかったとかなんとか。でも文法的には問題ないんだけど。。
cursor=db.cursor()
cursor.execute(update_sql,(series[0],series["code_no"]))
と、こういう感じでした。しょうがないので、必要ないと思ったけど、なんとなくキャストしてみたら解決しました
cursor=db.cursor()
cursor.execute(update_sql,(int(series[0]),int(series["code_no"])))
これで解決。意味がちょっとわからなかったけど、たぶん。。。。型が違った。。。んですかね?
update文でしたが、実際に更新されたデータもきっちり意図通りの更新ができました。よかった。
同じカテゴリの記事
コメント
executeする変数の数を増やすとこのエラーが出て悩んでいましたがキャストすることで解決しました.