【发布时间】:2018-12-12 12:29:27
【问题描述】:
当我查询我的 SQLite 数据库时,返回的列名之一有一个尾括号。数据库表架构为:
CREATE TABLE 'transactions' ('user_id' bigint, 'symbol' text,'shares' integer, 'date' datetime)
我正在查询登录用户拥有的股票。我正在使用SUM(transactions.shares) 和GROUP BY transactions.symbol,以便将多个条目中的股票数量相加,并按特定股票代码进行组织。
stocks_owned = db.execute("SELECT transactions.symbol, SUM(transactions.shares) FROM transactions WHERE user_id=:id GROUP BY transactions.symbol", id=session["user_id"])
print(stocks_owned) 显示:
[{'symbol': 'ABC', 'shares)': 17}, {'symbol': 'ABT', 'shares)': 6}, {'symbol': 'BAB', 'shares)': 12}, {'symbol': 'BBC', 'shares)': 16}, {'symbol': 'BBN', 'shares)': 6}, {'symbol': 'DAX', 'shares)': 2}, {'symbol': 'SEA', 'shares)': 12}, {'symbol': 'SEE', 'shares)': 12}]
shares 键中有一个括号:'shares)',它会导致访问模板中的值出现问题。为什么有这个括号,我该如何修复我的查询,所以它不是?
【问题讨论】:
-
@Car - 对,但问题是,这个错字是从哪里来的? stock_owned 是由 db.execute(...) 创建的
-
啊抱歉!浏览得太快了。由于查询正在返回共享数据,听起来
db.execute存在解析问题。您可以通过进入数据库并查看表名来验证这一点,并验证shares中没有流氓),然后深入到库的db.execute函数以查看)的位置in(可能最容易使用调试器遍历它)。