请求用户输入并使用sqlite3在python中的DB中插入

请求用户输入并使用sqlite3在python中的DB中插入,python,sqlite,Python,Sqlite,目前,我试图要求用户输入Python,以输入一些信息(此处:expenseID、expense、categoryID、date)。但我不知道该怎么开始。此步骤不需要输入验证 我设法访问了我的数据库并手动插入了一些内容。我尝试了pythoninput函数的几种方法,但无法将其用作SQL字符串中的占位符 导入sqlite3 使用sqlite3.connect('Expenses.sqlite')作为conn: #手动插入 script=“插入费用(支出ID、金额、类别ID、日期)值('103','4

目前,我试图要求用户输入Python,以输入一些信息(此处:expenseID、expense、categoryID、date)。但我不知道该怎么开始。此步骤不需要输入验证

我设法访问了我的数据库并手动插入了一些内容。我尝试了python
input
函数的几种方法,但无法将其用作SQL字符串中的占位符

导入sqlite3 使用sqlite3.connect('Expenses.sqlite')作为conn: #手动插入 script=“插入费用(支出ID、金额、类别ID、日期)值('103','43625.5','5','2019-01-20') 执行(脚本)#执行脚本 conn.commit()#提交对文件的更改 #插入用户输入??? 通过 这是我的想法:

with sqlite3.connect('Expenses.sqlite') as conn:

    amount = input("What is the amount?")
    script = "SELECT * FROM Category;"
    conn.execute(script)
    print(script)
    category = input("What is the category?")
    exp_ID = "SELECT LAST ExpenseId FROM Expense);"
    date = datetime.date.today()
    script = "INSERT INTO Expense (ExpenseId, Amount, CategoryId, Date) VALUES (exp_ID, amount, category, date);"
    conn.execute(script)
    conn.commit()
    pass
最后我想实现的是,要求用户提供费用金额,然后要求用户提供费用类别。ExpenseID和日期应自动添加。日期格式为年-月-日。非常感谢您的建议。

使用该功能检索用户输入

user_input = input("Expense Amount: ")
然后与sqlite3一起使用

sql = "INSERT INTO TABLE (COLUMN) VALUES (?)"
conn.execute(sql, (user_input,))
**回应你的编辑

您需要添加占位符而不是变量名

大概是这样的:

script = "INSERT INTO Expense (ExpenseId, Amount, CategoryId, Date) VALUES (?, ?, ?, ?);"
conn.execute(script, (exp_ID,amount,category,date))
使用函数检索用户输入

user_input = input("Expense Amount: ")
然后与sqlite3一起使用

sql = "INSERT INTO TABLE (COLUMN) VALUES (?)"
conn.execute(sql, (user_input,))
**回应你的编辑

您需要添加占位符而不是变量名

大概是这样的:

script = "INSERT INTO Expense (ExpenseId, Amount, CategoryId, Date) VALUES (?, ?, ?, ?);"
conn.execute(script, (exp_ID,amount,category,date))

这完全没有说明如何将数据插入SQLite数据库是的,我的错误是我没有完全阅读这个问题。编辑我的回答我尝试了sql连接之外的输入,但没有通过任何占位符将其包含在脚本中。这是我的第一个问题。所以,这看起来是一个好主意,但我用这种方法得到了IntegrityError。RegardsIntegrityError是sqlite异常。检查您的列定义。这绝对没有说明如何将数据插入SQLite数据库是的,我的错误我没有完全阅读这个问题。编辑我的回答我尝试了sql连接之外的输入,但没有通过任何占位符将其包含在脚本中。这是我的第一个问题。所以,这看起来是一个好主意,但我用这种方法得到了IntegrityError。RegardsIntegrityError是sqlite异常。检查列定义。