Sqlite3查询返回(type,)而非"type",如何解决?
SQLite查询结果返回元组而非单个值的解决方法
你遇到的问题是因为fetchall()返回的是包含查询行的列表,每一行都是一个元组——哪怕你只查询了一个字段,这一行也会被包装成元组。所以acctype[0]拿到的是第一行的元组(type,),而不是里面的字符串值。
解决方法有几种:
直接取元组的第一个元素:
c.execute("SELECT type FROM accounts") acctype = c.fetchall() print(acctype[0][0]) # 取第一行元组的第一个元素如果只需要获取第一行数据,用
fetchone()替代fetchall()更高效:c.execute("SELECT type FROM accounts") acctype = c.fetchone() print(acctype[0]) # fetchone()返回单一行的元组,取第一个元素要是需要把所有查询结果都转成单个值的列表,可以用列表推导式:
c.execute("SELECT type FROM accounts") acctype_list = [row[0] for row in c.fetchall()] print(acctype_list[0]) # 列表里的每个元素都是单个type值
内容的提问来源于stack exchange,提问作者signalmute
相关产品推荐
相关产品推荐

