回答編集履歴
1
新たなエラーについて追記
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)
|