如何拆分从SQL数据库中检索的列表中的对象?

时间:2014-01-07 12:24:17

标签: python sql list python-3.3 string-split

我正在使用python 3.3,尝试创建一种“登录”功能。但是,我不知道我是如何拆分我已检索到的列表。它就是这种格式。

[('AdamBaker1',), ('PaulBaker2',), ('DanBaker3',), ('CarolBaker4',), ('ClaireBaker5',), ('PaulBaker6',), ('ChrisBaker7',)]

但是,我希望程序只在从用户输入输入文本(例如,'CarolBaker4')时接受。

1 个答案:

答案 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')