typeerror:并非在字符串格式化过程中转换所有参数

时间:2017-09-28 00:43:10

标签: mysql python-2.7

当我尝试在Python 2.6.6中运行Python脚本时,它非常完美。但是当我在Python 2.7.5中运行它时,我总是遇到以下错误。

我遇到的问题是什么?

Traceback (most recent call last):
File "mqtt-mysql.py", line 204, in <module>
S_UNIQUE = get_setting("unique", F_UNIQUE)
File "mqtt-mysql.py", line 65, in get_setting
cur.execute("SELECT state FROM settings WHERE setting = %s", (setting))
File "/usr/lib64/python2.7/site-packages/MySQLdb/cursors.py", line 187, in    execute
query = query % tuple([db.literal(item) for item in args])

TypeError: not all arguments converted during string formatting

1 个答案:

答案 0 :(得分:0)

您可以尝试使用string.format()格式化字符串,如'{0} {1} {2}'.format(obj1, obj2, obj3)

版本&lt; = 2.6和3.0

cur.execute("SELECT state FROM settings WHERE setting = {0}".format(setting))

版本&gt; = 2.7和&gt; = 3.1

cur.execute("SELECT state FROM settings WHERE setting = {}".format(setting))

如果您使用的是2.6和3.0,则需要将该数字放在占位符{}中。对于上面的2.7和3.1,可以省略{}中的数字。