python - SQLite 从列列表中获取 TOTAL?
问题描述
我试图总结我的列中的总值。我有 5 列,我可以通过以下方式获得 1 乘 1 的总值:
import sqlite3
list2 = ['Food', 'Transport', 'Insurance', 'Installments', 'Others']
def expensedata():
con = sqlite3.connect("expense.db")
c = con.cursor()
c.execute("CREATE TABLE IF NOT EXISTS expense (id INTEGER PRIMARY KEY,\
food real, transport real, insurance real, installments real, others real)")
con.commit()
con.close()
expensedata()
con = sqlite3.connect("expense.db")
c = con.cursor()
c.execute("SELECT TOTAL(food) FROM expense")
print(c.fetchall()[0])
con.close()
我能够得到26.0
这个专栏的总数。
但是,我没有对 n 列重复此代码 n 次,而是尝试:
con = sqlite3.connect("expense.db")
c = con.cursor()
for i in range(len(list2)):
c.execute("SELECT TOTAL(?) FROM expense", (list2[i],))
print(c.fetchall()[0])
con.close()
但输出变成(0.0,) (0.0,) (0.0,) (0.0,) (0.0,)
了。
我该如何解决这个问题?谢谢
解决方案
只需使用字符串格式:
c.execute("SELECT TOTAL(%s) FROM expense" % list2[i])
推荐阅读
- c# - C# Winforms:回答在进程中使用 cmd.exe 发出的命令的输出
- certificate - 当服务器有多个证书时,哪个证书有公钥?
- http - 测试 SIM 模块时出错
- google-cloud-platform - PermissionDenied:403 IAM 权限“dialogflow.intents.list”
- sql - 通过一些字符串操作,用另一个表中的数据更新一个表中的数据
- rxjs - rxjs - 主题订阅者错过了一个值
- javascript - 如何在 java 脚本中声明 div 和 id/class
- jquery - 当我单击该 div 内的 iframe 时如何获取该 div 的数据 ID
- javascript - 如何用 async/await 解决厄运金字塔?
- python - 如何在 Python 中比较两个 SQLlite 数据集并搜索相似之处?