python - sqlite3 查询未在函数中返回结果
问题描述
使用sqlite3从表中取回数据并根据条件返回 #results 的函数仅返回零。通过 Visual Studio 运行 #function 会返回预期的结果,但是 #当我尝试从终端运行它时,它会将表解释为 #as 是一个空列表。
import sqlite3
con = sqlite3.connect('test2.db')
cur = con.cursor()
小表来说明问题。表输出是[('Jane', 300.0), ('Joe', 100.0), ('Joe', 50.0)]
total_bal = """SELECT name, amount FROM customers2"""
user_name = input("What is your name? ")
def account_balance(name):
cur.execute(total_bal)
table = cur.execute(total_bal)
total = 0
name = user_name
for t in table:
if t[0] == name:
total += t[1]
return total
print(account_balance(user_name))
期望返回 150if user_name input = 'Joe' or 300 if 'Jane'
解决方案
实际上,您可以通过查询来执行此操作,并一起避免使用帐户余额功能。
statement = "SELECT name, account FROM customers2 WHERE name = ?;"
name = input("Enter your name: ")
cur.execute(statement, (str(name),))
results = cur.fetchone()
if results:
print(f"Name: {results[0]}\nAccount Balance: {results[1]}"
else:
print("Your name is not in the database")
推荐阅读
- django - django-CMS 和 cookiecutter-django 不兼容吗?
- django - 如何在 ubuntu 上的 django 中进行 docker-compose 后进入重新启动状态时修复 docker
- pdf - ionic4 在 inappbrowser 中显示动态创建的 pdf 文件
- node.js - 未找到模块。我在 app.js 文件中运行 ----- CONST DATE 代码的那一刻,它向我显示了一个错误 (internal/modules/cjs/loader.js:985 throw err; ^)
- python - 如何在 Pygame 中为 pygame.sprite.rect 矩形分配“rect”属性?
- excel - 你能控制另一个程序.exe吗?我试过使用发送键,但这不可靠
- c# - C# CSV 文件:如何在使用数据表读取 csv 文件时跳过几列
- mysql - mysql如何用SELECT语句读取和返回大数据?
- c - 我怎么知道进程在linux上消耗了堆、堆栈、数据
- python - 带量词的正则表达式 Lookbehind