首页 > 解决方案 > mysql.connector.errors.ProgrammingError:处理格式参数失败;Python 'list' 无法转换为 MySQL 类型

问题描述

问题已回答

我试图将一个值插入到我的表中,它通过将其与其名称匹配并将其插入到第二个表中来选择一个 ID。但是,当我打印出所选值时,它会打印 [(1,)] ,它被归类为列表。因此,当它尝试将值插入表中时,我收到错误,即当我只想要值 1 时尝试插入列表。

它的代码在python中,如下所示:

 def createaudit():
    sitename2_info = sitename.get()
    print(sitename2_info, "testing2")
    name2_info = name2.get()
    print(name2_info)
    name3_info = name3.get()
    print(name3_info)
    # Sql code for writing the data that was written in the regsitering page. 
    cursor = cnn.cursor()
    # the site query matches the inputted username with the corresponding userID and inserts the userID into userID_fk
    siteIDQuery = "SELECT siteID FROM Sites WHERE siteName = %s"
    cursor.execute(siteIDQuery, [sitename2_info])
    siteID_fetch = cursor.fetchall()
    print(siteID_fetch)
    sitequery = "INSERT INTO `audit`(`siteID_fk`, `auditor1`, `auditor2`) VALUES (%s, %s, %s)"
    sitequery_vals = (siteID_fetch, name2_info, name3_info)
    cursor.execute(sitequery, sitequery_vals)
    # prints how many rows were inserted to make sure values are put into the database
    print(cursor.rowcount)
    cnn.commit()
    cursor.close()
    cnn.close()

标签: pythonmysqllistmysql-error-1064

解决方案


推荐阅读