Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中使用SQLite数据库选择进行算术运算_Python_List_Sqlite_Math_Concatenation - Fatal编程技术网

如何在Python中使用SQLite数据库选择进行算术运算

如何在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

我试图从我的数据库中添加(而不是连接)一个SQLite选择,但它以列表的形式返回值并尝试连接它。 我看到的是“总计=用户+价值”这一行 我正在开发一个web flask应用程序,用于管理模拟股票组合交易。请帮忙! “用户”表的“现金”列是数字,“投资组合”表的“股票”和“价格”列是整数和数字

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'}]