Python 在函数中传递元组

Python 在函数中传递元组,python,tkinter,sqlite,Python,Tkinter,Sqlite,我问了很多问题,但我想不出我的问题 我编写了一个函数,将元组作为参数,并执行以下操作: def add_subject(name_stud, *data): c.execute("INSERT INTO " + name_stud + " VALUES (?,?,?,?,?,?,?,?)", data) conn.commit() 我尝试在一个类方法中调用这个函数,并将tuple作为参数传递,但我得到了一个错误 add_subject(self.pa

我问了很多问题,但我想不出我的问题

我编写了一个函数,将元组作为参数,并执行以下操作:

def add_subject(name_stud, *data):
    c.execute("INSERT INTO " + name_stud + " VALUES (?,?,?,?,?,?,?,?)", 
             data)
    conn.commit()
我尝试在一个类方法中调用这个函数,并将tuple作为参数传递,但我得到了一个错误

add_subject(self.page1.student_name, data)
数据就是那里的元组

错误是:

sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用8,提供了1个

在我使用它的时候,我试着解包,但仍然出现了错误:

def add_subject(name_stud, data):
    c.execute("INSERT INTO " + name_stud + " VALUES (?,?,?,?,?,?,?,?)", 
              *data)
    conn.commit()
错误:

sqlite3.InterfaceError:绑定参数0时出错-可能是不支持的类型

其他人的回答对我没有帮助。
任何帮助都将不胜感激。

您已将参数
数据
声明为位置参数,但只传递一个参数
数据
。这意味着最终参数将是
(数据,)
。为了填充位置参数,需要在传递时解压缩元组

add_subject(self.page1.student_name, *data)

您已将参数
data
声明为位置参数,但只传递一个参数
data
。这意味着最终参数将是
(数据,)
。为了填充位置参数,需要在传递时解压缩元组

add_subject(self.page1.student_name, *data)

由于将元组作为单个参数传递,因此不应在函数定义中写入
*数据。只需将其声明为普通函数参数

def add_subject(name_stud, data):
    row = data
    c.execute("INSERT INTO " + name_stud + " VALUES (?,?,?,?,?,?,?,?)", 
             data)
    conn.commit()

由于将元组作为单个参数传递,因此不应在函数定义中写入
*数据。只需将其声明为普通函数参数

def add_subject(name_stud, data):
    row = data
    c.execute("INSERT INTO " + name_stud + " VALUES (?,?,?,?,?,?,?,?)", 
             data)
    conn.commit()

数据的价值是什么?
?您是否在没有打开包装的情况下尝试过它?IIRC您不需要在ExecuteEyes中解包我尝试过,但错误仍然是sqlite3.InterfaceError:error binding parameter 0-可能是不受支持的类型。
数据的值是多少?
?您尝试过它而没有解包吗?IIRC您不需要在ExecuteEyes中解包,我尝试过,但错误仍然是sqlite3.InterfaceError:error绑定参数0-可能不支持类型。但这仍然会给我TypeError:add_subject()接受2个位置参数,但9个参数与您的定义方式无关。签名接受1到255个参数。但这仍然会给我TypeError:add_subject()接受2个位置参数,但9个参数的给出与您如何定义它无关。签名需要1到255个参数。我也这么认为,但我得到了错误:>sqlite3.InterfaceError:错误绑定参数0-可能不支持的类型。表列的数据类型和元组中的值是什么?我也这么认为,但我得到了错误:>sqlite3.InterfaceError:错误绑定参数0-可能不支持的类型。什么表列的数据类型和元组中的值是什么?