最近写小程序久违的用到了数据库,用fetch()返回数据库搜索的数据时却犯了个低级错误。
我本来只是获取一条数据,调用了fetchall(),想将数据转化为列表,却发现列表里的数据仍是元组
cursor.execute(sql) res = list(cursor.fetchall())print(res)
想了一会用元组解包还是没用,原来
fetchone() :
fetchone()
函数的功能是从游标(Cursor)中获取一行数据,如果没有数据则返回None
它的结构如下:
fetchone(self) -> tuple or None其中,self
表示游标对象。fetchone()
函数返回一个元组,包含查询结果中的一行数据。如果没有数据,则返回None。
fetchall() :
fetchall()
函数的功能是从游标(Cursor)中获取所有行数据,返回多个元组。它的结构如下:
其中,self
表示游标对象。fetchall()
函数返回多个元组,包含查询结果中的所有行数据。如果没有数据,则返回None
修改后:
re = list(cursor.fetchone())print(re)
这就可以了。
推荐博主原文:(122条消息) 【Python】fetchone()和fetchall()_fetchone和fetchall_飘走的烟的博客-CSDN博客
①查询出有多条数据时:
cursor.fetchone():将只取最上面的第一条结果,返回单个元组如('id','name'),然后多次循环使用cursor.fetchone(),依次取得下一条结果,直到为空。
cursor.fetchall() :将返回所有结果,返回二维元组,如(('id','name'),('id','name')),
②查询只有一条数据时:
cursor.fetchone():将只返回一条结果,返回单个元组如('id','name')。
cursor.fetchall() :也将返回所有结果,返回二维元组,如(('id','name'),),
参考原文链接:https://blog.csdn.net/u014234260/article/details/79581041