sqlite3 插入的不完整输入错误

Dom*_*rro 0 python sql sqlite input

python 新手,正在练习一个小项目。我正在尝试将用户提供的数据(名字、姓氏、性别、年龄)或生成的数据(用户 ID、数学分数、口头分数)插入到 .db 文件中。一切运行顺利,直到实际插入,它给我“sqlite3.OperationalError:不完整的输入”。我的代码中是否有错误,还是应该使用不同的策略来保存这些?我还需要稍后回忆它们以获得基本的登录页面,所以请记住这一点。

class diag:
    quantitative_diagnostic = quantitative_diagnostic_percentage
    verbal_diagnostic = verbal_diagnostic_percentage

class user:
def __init__(self):
    user_ID
    forename
    surname
    sex
    age
    quantitative_diagnostic_percentage
    verbal_diagnostic_percentage

# user info storage
conn = sqlite3.connect('promethean_user.db')
c = conn.cursor()
c.execute("INSERT INTO promethean_user VALUES (:user_ID0, :forename, 
:surname, :age, :sex, :quant_diag, :verbal_diag",
      {'user_ID0': user.user_ID,
       'forename': user.forename,
       'surname': user.surname,
       'age': user.age,
       'sex': user.sex,
       'quant_diag': diag.quantitative_diagnostic,
       'verbal_diag': diag.verbal_diagnostic})
Run Code Online (Sandbox Code Playgroud)

预期将数据保存到 .db 文件,给出错误警告“qlite3.OperationalError:输入不完整”。错误警告位于“verbal_diag”:代码的 diag.verbal_diagnostic 部分

ruo*_*ola 5

您缺少右括号:

c.execute("INSERT INTO promethean_user VALUES (:user_ID0, :forename, 
:surname, :age, :sex, :quant_diag, :verbal_diag)",
                                               ^
                                               |
                                            Add this
Run Code Online (Sandbox Code Playgroud)