質問するログイン新規登録

回答編集履歴

1

新たなエラーについて追記

2017/12/04 08:31

投稿

8524ba23
8524ba23

スコア38350

answer CHANGED
@@ -1,3 +1,7 @@
1
1
  SQL文内のパラメータが1個であっても`execute`の引数としては`tuple`や`list`などの`iterable`なオブジェクトとして渡さないといけないようです。
2
2
  `cur.execute('~ID=%d',(int(a),))`または``cur.execute('~ID=%d',[int(a)])``と修正ください(動作未検証)
3
- 参考:[TypeError: 'int' object is not iterable - Python](https://stackoverflow.com/questions/28365580/typeerror-int-object-is-not-iterable-python)
3
+ 参考:[TypeError: 'int' object is not iterable - Python](https://stackoverflow.com/questions/28365580/typeerror-int-object-is-not-iterable-python)
4
+
5
+ `MySQLdb`の制限なのか分かりませんが、SQL文中のパラメータ指定では`%s`しか使えないようです。
6
+ よって`cur.execute('~ID=%s',(a,))`のように`%s`で指定し`(a,)`のように`a`は`str`のままのタプルとして渡してみてください(動作未検証)
7
+ 参考:[Python MySQLdb issues (TypeError: %d format: a number is required, not str)](https://stackoverflow.com/questions/5785154/python-mysqldb-issues-typeerror-d-format-a-number-is-required-not-str)