不断收到错误TypeError:函数最多接受2个参数(给定3个)

jor*_*son 0 python sqlite foreign-keys relational-database typeerror

我目前正在上大学的课程项目,涉及一个测验,该测验将所有背景数据存储在数据库中。通过添加外键,我试图找到一种方法来合并两个表之间的外键数据。例如,users表存储用户数据及其用户ID。数据表将存储有关测验级别等信息以及该特定用户ID。插入数据时如何从两个表中自动更新该信息?

该方法似乎不起作用,下面是一些代码。

difficulty= (1,)
users_id = (1,)  

#values of variables

def users_level(db,cursor,difficulty,users_id):

   cursor.execute("insert into Data (Level,UsersID) VALUES (?,?)",(difficulty),(users_id))

   db.commit()
Run Code Online (Sandbox Code Playgroud)

然后出现错误:

   cursor.execute("insert into Data (Level,UsersID) VALUES (?,?)",(difficulty),(check_id))
TypeError: function takes at most 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)

有解决这个问题的方法吗?或者可能是一种更容易/更有效的方法,可以使用外键从其他表中自动增加ID /数据。谢谢。

Dee*_*ace 5

cursor.execute 需要2个参数(查询和查询args元组),但您要传递3个参数: cursor.execute("insert into Data (Level, UsersID) VALUES (?,?)",(difficulty),(users_id))

您应该更改(difficulty),(users_id)为2个元素的元组,(difficulty, users_id)

cursor.execute("insert into Data (Level, UsersID) VALUES (?,?)", (difficulty, users_id))
Run Code Online (Sandbox Code Playgroud)