python - 如何在 Python 中使用 GUI Tkinter 以特定格式显示来自数据库 sqlite3 的信息?
问题描述
我正在尝试从数据库中检索信息并以某种方式显示它:
名称:蝙蝠侠
价格:18 英镑
但我收到此错误:“TypeError:'int' 对象不可下标。”
我该如何解决?
c.execute("SELECT name, price FROM products WHERE id=02")
records = c.fetchone()
# print(records)
print_products = ''
for record in records:
print_products += 'Name:' + str(record[0]) + '\n' + 'Price: £' + str(record[1])
query_label = Label(frame, fg='darkblue', bg='darkgray', text=print_products)
query_label.pack()
解决方案
由于您只从结果中获取一条记录,因此records
是列值的元组。然后你使用for record in records:
,这意味着record
是一个可能是整数的列值。所以 usingrecord[0]
会引发上述异常。
实际上你根本不需要 for 循环:
c.execute("SELECT name, price FROM products WHERE id=02")
record = c.fetchone()
# check whether record exists
if record:
print_products = 'Name:' + str(record[0]) + '\n' + 'Price: £' + str(record[1])
query_label = Label(frame, fg='darkblue', bg='darkgray', text=print_products)
query_label.pack()
推荐阅读
- sql - 不能在 select 语句中使用子查询。返回“缺少 FROM 表达式”
- kubernetes - 如何使用多个 Web 服务(Pod)准确地进行 JMETER 负载测试
- docker - 带有 RSDriver 的 RSelenium。错误:httr 输出:无法连接到 localhost 端口 4445:连接被拒绝
- javascript - 为什么在这种情况下 babel 会转换 import 和 export?
- owasp - 确保放置到 HTML 中的所有字符串变量都经过手动正确的上下文编码
- windows - tmux no server running on /tmp/tmux-*/default - Windows msys2 终端
- swift - PDFPage setBounds 模糊变形
- php - 用多个变体替换字符串
- angular - 无法从 .subscribe 外部评估 http 发布响应数据
- java - ModelMapper:如何映射到已知具体类型的通用实例列表