繁体   English   中英

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

[英]SQL query in flask python returning a key error

我正在网站上创建一个经期跟踪器。 我正在使用 SQL 数据库来存储用户信息,并且我还在我的 web 页面之一上获取用户输入关于他们的月经周期和期间的长度。 我将用户输入存储在另一个表中。 所以我的问题是,我正在测试计算特定用户月经周期的平均长度,但是当我需要 integer 时,查询返回字典。 我需要它作为 integer 因为我正在使用该值进行一些计算。 当我运行程序时(顺便说一句,我在 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_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"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM