我正在使用python 3.3,尝试创建一种“登录”功能。但是,我不知道我是如何拆分我已检索到的列表。它就是这种格式。
[('AdamBaker1',), ('PaulBaker2',), ('DanBaker3',), ('CarolBaker4',), ('ClaireBaker5',), ('PaulBaker6',), ('ChrisBaker7',)]
但是,我希望程序只在从用户输入输入文本(例如,'CarolBaker4')时接受。
答案 0 :(得分:1)
你有一个行列表;每个SQL结果行只包含一个列,因为这是您选择的所有列,但您的select可能返回了多个列。
选择每个第一个元素:
results = [row[0] for row in results]
现在你有一个字符串列表,而不是字符串元组列表。
您还可以测试给定字符串(来自用户输入)是否在您的列表中:
if any(row[0] == username for row in results):
print('User found')
但是,如果您从用户那里获得用户名输入,请不要向数据库询问所有用户名。请询问数据库中是否存在用户名:
cursor.execute('SELECT 1 FROM users WHERE username = ?', (username,))
if cursor.fetchone():
print('User exists')
else:
print('Error: no such user')