如何在SQL查询结果中仅提取并打印目标字段的值?
提取SQL查询返回的单个密码值
你当前用fetchall()得到的是包含字典的列表[{'Password': '1'}],要提取其中的'1'可以用以下几种方法:
方法1:通过列表索引+字典键取值
先判断查询结果非空(避免无匹配时触发索引错误),再取列表第一个元素里的Password对应值:
datapassword = conn.execute("SELECT Password From NewUsers WHERE Username = ?", [username_login]).fetchall() if datapassword: password = datapassword[0]['Password'] print(password) # 输出 '1'
方法2:改用fetchone()获取单行数据
如果用户名是唯一的,查询只会返回一行,用fetchone()更高效,它直接返回单条数据的字典(无匹配时返回None):
datapassword = conn.execute("SELECT Password From NewUsers WHERE Username = ?", [username_login]).fetchone() if datapassword: password = datapassword['Password'] print(password)
方法3:直接提取单个字段值
部分数据库连接库支持fetchval()方法,可以直接返回查询结果的第一个值(无数据时返回None):
password = conn.execute("SELECT Password From NewUsers WHERE Username = ?", [username_login]).fetchval() if password: print(password)
如果你的库不支持fetchval(),也可以对fetchone()的结果取索引:
datapassword = conn.execute("SELECT Password From NewUsers WHERE Username = ?", [username_login]).fetchone() if datapassword: password = datapassword[0] print(password)
内容的提问来源于stack exchange,提问作者user101251
相关产品推荐
相关产品推荐

