Python MySQLDB - 不是在字符串格式化过程中转换的所有参数

时间:2018-06-12 10:41:58

标签: python mysql

当我执行我的程序时,我有这个错误:

query = query % tuple([db.literal(item) for item in args])
TypeError: not all arguments converted during string formatting

我试图解决它,但没有任何效果。这是我的代码。 谢谢你的帮助。

con = mdb.connect('localhostt', '****', '*********', 'credentials');

with con:

    cur = con.cursor()
    cur.execute("DROP TABLE IF EXISTS Data")
    cur.execute("CREATE TABLE Data(Id INT PRIMARY KEY AUTO_INCREMENT, \
                 Name VARCHAR(25))")

    name1 = "Paste"
    country_code = 'PSE'
    district = 'Someyork'
    population = 10008

    cur.execute("INSERT INTO Data(Name) VALUES(%s) ",(name1))
    con.comit()

1 个答案:

答案 0 :(得分:0)

你想要

cur.execute("INSERT INTO Data(Name) VALUES(%s)", (name1,))

注意(name1,)中的额外逗号 - 需要它才能使它成为一个元组。没有逗号,它与

相同
cur.execute("INSERT INTO Data(Name) VALUES(%s)", name1)

由于字符串也是序列,连接器会遍历name1中的每个字符,因此会出错。