Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
flask python中的SQL查询返回密钥错误_Python_Sql - Fatal编程技术网

flask python中的SQL查询返回密钥错误

flask python中的SQL查询返回密钥错误,python,sql,Python,Sql,我正在一个网站上创建一个周期跟踪器。我使用一个SQL数据库来存储用户信息,我还在我的一个网页上获取用户输入的关于他们月经周期和经期的长度。我正在另一个表中存储用户输入。所以我的问题是,我正在测试计算特定用户月经周期的平均长度,但是当我需要一个整数时,查询会返回一个字典。我需要它作为一个整数,因为我使用这个值进行一些计算。当我运行程序时(顺便说一句,我在python中使用flask),我得到一个键错误。你知道我怎么解决这个问题吗 我有一个带有uid、prev_period_date、period_

我正在一个网站上创建一个周期跟踪器。我使用一个SQL数据库来存储用户信息,我还在我的一个网页上获取用户输入的关于他们月经周期和经期的长度。我正在另一个表中存储用户输入。所以我的问题是,我正在测试计算特定用户月经周期的平均长度,但是当我需要一个整数时,查询会返回一个字典。我需要它作为一个整数,因为我使用这个值进行一些计算。当我运行程序时(顺便说一句,我在python中使用flask),我得到一个键错误。你知道我怎么解决这个问题吗

我有一个带有uid、prev_period_date、period_length和cycle_length列的表时间线

    cycle_avg = db.execute("SELECT AVG(cycle_length) FROM timeline WHERE uid=:user_id", user_id=session["user_id"])[0]["cycle_length"]
    period_avg = db.execute("SELECT AVG(period_length) FROM timeline WHERE uid=:user_id", user_id=session["user_id"])[0]["period_length"]
我得到的错误是:

File "/home/ubuntu/f_p/application.py", line 167, in tracker
    cycle_avg = db.execute("SELECT AVG(cycle_length) FROM timeline WHERE uid=:user_id", user_id=session["user_id"])[0]["cycle_length"]

KeyError: 'cycle_length'

如何解决此问题?

从数据库检索的结果集不包含名为
cycle\u length
的字段,因为您没有为计算字段提供别名。尝试:

cycle_avg = db.execute("SELECT AVG(cycle_length) as cycle_length FROM timeline WHERE uid=:user_id", user_id=session["user_id"])[0]["cycle_length"]
period_avg = db.execute("SELECT AVG(period_length) as period_length FROM timeline WHERE uid=:user_id", user_id=session["user_id"])[0]["period_length"]