如何在Python+mysql.connector中输出无括号逗号的纯值?
解决Python mysql.connector查询结果输出纯字段值的问题
你当前用fetchall()获取的查询结果是包含元组的列表,每个元组对应数据库中的一行数据——哪怕只查询一个字段,这一行数据也会被包装成元组(比如('esrvgf',))。要输出纯字段值,只需要提取元组里的第一个元素即可,以下是两种可行方案:
方案1:遍历fetchall()结果时提取元组元素
直接在循环中通过索引[0]取出元组内的字段值:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", password="password", database ="mydatabase" ) cursor = mydb.cursor() sql = "select nick from users where ipaddress = '192.168.1.4'" cursor.execute(sql) myresult = cursor.fetchall() for x in myresult: print(x[0]) # 提取元组的第一个元素
方案2:用fetchone()获取单行结果(适用于确定只有一条匹配数据的场景)
如果你的查询条件(比如ipaddress)确保只会返回一行数据,可以用fetchone()代替fetchall(),它直接返回单个元组,再提取元素:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", password="password", database ="mydatabase" ) cursor = mydb.cursor() sql = "select nick from users where ipaddress = '192.168.1.4'" cursor.execute(sql) myresult = cursor.fetchone() # 获取单行结果元组 if myresult: # 避免查询无结果时报错 print(myresult[0])
内容的提问来源于stack exchange,提问作者TishaBeing77
相关产品推荐
相关产品推荐

