无法将负整数输入 SQLite table
Can't input negative integer into SQLite table
我正在尝试将一个负整数放入我的 sqlite 数据库,但由于某种原因没有被插入。
我收到错误:
TypeError: can't multiply sequence by non-int of type 'float'
当我检查打印值时,我发现它是空的。
这是我用来插入 table:
的命令
db.execute(
"INSERT INTO history (id,date,symbol,shares,price) VALUES (?,?,?,?,?)",
session["user_id"],
time,
request.form.get("symbol").upper(),
request.form.get("shares") * -1,
price,
)
request.form.get("shares")
是从 HTML 表单输入的数字。
我用它来制作 table:
db.execute(
"CREATE TABLE history (id int, date varchar(255), symbol varchar(9), shares int, price int)"
)
我试过用 int()
包围 request.form.get("shares")
但没用。
正整数工作正常。
原因正是错误所说的。从请求表单返回的数据返回的是非数字类型。任何输入都作为字符串返回,然后需要重新定义。如果你尝试做
print(type(request.form.get("shares")
您可以看到结果的类型并从那里开始工作。 @Jack Deeth 在他的回答中所说的将起作用。您也可以始终在插入之前进行数学运算,并预先声明为 int。
我正在尝试将一个负整数放入我的 sqlite 数据库,但由于某种原因没有被插入。
我收到错误:
TypeError: can't multiply sequence by non-int of type 'float'
当我检查打印值时,我发现它是空的。
这是我用来插入 table:
的命令db.execute(
"INSERT INTO history (id,date,symbol,shares,price) VALUES (?,?,?,?,?)",
session["user_id"],
time,
request.form.get("symbol").upper(),
request.form.get("shares") * -1,
price,
)
request.form.get("shares")
是从 HTML 表单输入的数字。
我用它来制作 table:
db.execute(
"CREATE TABLE history (id int, date varchar(255), symbol varchar(9), shares int, price int)"
)
我试过用 int()
包围 request.form.get("shares")
但没用。
正整数工作正常。
原因正是错误所说的。从请求表单返回的数据返回的是非数字类型。任何输入都作为字符串返回,然后需要重新定义。如果你尝试做
print(type(request.form.get("shares")
您可以看到结果的类型并从那里开始工作。 @Jack Deeth 在他的回答中所说的将起作用。您也可以始终在插入之前进行数学运算,并预先声明为 int。