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

2024-06-16 08:43:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python3.3上,试图创建一个“登录”函数的形式。然而,我不知道我如何将我检索到的列表分开。现在是这种格式。在

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

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


Tags: 函数用户文本程序列表格式形式adambaker1
1条回答
网友
1楼 · 发布于 2024-06-16 08:43:49

您有一个行列表;每个SQL结果行只包含一列,因为这是您选择的全部内容,但是您的select可能返回了多个列。在

只需选择第一个元素:

results = [row[0] for row in results]

现在您有了一个字符串列表,而不是一个字符串元组列表。在

您还可以测试列表中是否有给定的字符串(来自用户输入):

^{pr2}$

但是,如果您从用户处获得用户名输入,请不要向数据库询问所有用户名。而是询问数据库中是否存在用户名:

cursor.execute('SELECT 1 FROM users WHERE username = ?', (username,))
if cursor.fetchone():
    print('User exists')
else:
    print('Error: no such user')

相关问题 更多 >