如何在Python中使用SQLite数据库选择进行算术运算
我试图从我的数据库中添加(而不是连接)一个SQLite选择,但它以列表的形式返回值并尝试连接它。 我看到的是“总计=用户+价值”这一行 我正在开发一个web flask应用程序,用于管理模拟股票组合交易。请帮忙! “用户”表的“现金”列是数字,“投资组合”表的“股票”和“价格”列是整数和数字如何在Python中使用SQLite数据库选择进行算术运算,python,list,sqlite,math,concatenation,Python,List,Sqlite,Math,Concatenation,我试图从我的数据库中添加(而不是连接)一个SQLite选择,但它以列表的形式返回值并尝试连接它。 我看到的是“总计=用户+价值”这一行 我正在开发一个web flask应用程序,用于管理模拟股票组合交易。请帮忙! “用户”表的“现金”列是数字,“投资组合”表的“股票”和“价格”列是整数和数字 users = db.execute("SELECT cash FROM users WHERE id = :id", id=session["user_id"]) portfolio = db.execu
users = db.execute("SELECT cash FROM users WHERE id = :id", id=session["user_id"])
portfolio = db.execute("SELECT * FROM portfolio WHERE id = :id", id=session["user_id"])
values = 0
total = users
if portfolio:
for each in portfolio:
values= values + (each.shares * each.price)
total = users + values
#value = usd( total )
value = users
return render_template("index.html", stock=portfolio, user=users, value=value)
正如罗晨欢在评论中指出的,
sqlite3.execute
返回一个sqlite3.Cursor
对象,因此您的user
和portfolio
变量实际上是游标,而不是可编辑的值集合。为了使这些内容变得可编辑,您需要对这些内容调用.fetchall()
方法,以获取结果列表
执行此操作后,这些列表中的每个结果都将是一个元组,表示SQLite数据库中的行,而不是具有命名属性的属性。因此,要获取您感兴趣的值,您必须通过索引访问它们,或者将它们加载到
集合中。namedtuple
实例中,以通过命名属性访问它们。您的用户
变量是sqlite3.Cursor
对象,也就是total
。您试图将“sqlite3.Cursor”和“float”相加,我认为total=users+values
甚至无法运行。感谢您澄清我的错误。游标对象在括号内返回一个JSON风格的对象,是否有一种简单的方法来引用这个“用户”表中的值:[{'id':1,'username':'truth','hash':'PassW0rd'}]