python 数据库查询返回list或tuple实例
MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.DictCursor就行。
默认程序:
importMySQLdb db=MySQLdb.connect(host='localhost',user='root',passwd='123456',db='test') cur=db.cursor() cur.execute('select*fromuser') rs=cur.fetchall() printrs #返回类似如下 #((1000L,0L),(2000L,0L),(3000L,0L))
修改后:
importMySQLdb importMySQLdb.cursors db=MySQLdb.connect(host='localhost',user='root',passwd='123456',db='test', cursorclass=MySQLdb.cursors.DictCursor) cur=db.cursor() cur.execute('select*fromuser') rs=cur.fetchall() printrs #返回类似如下 #({'age':0L,'num':1000L},{'age':0L,'num':2000L},{'age':0L,'num':3000L})
或者也可以用下面替换connect和cursor部分
db=MySQLdb.connect(host='localhost',user='root',passwd='123456',db='test')
cur=db.cursor(cursorclass=MySQLdb.cursors.DictCursor)
我的实践:
输出为元组类型:
importpymysql db=pymysql.connect("localhost","root","123456","filestore") cursor=db.cursor() sql='select*fromtablelistwhereid>%s'%4 #查询方法一 cursor.execute(sql) result=cursor.fetchall() print('result',result) sql2='select*fromtablelistwhereid>%s' values=('4')#此处为元组类型 #查询方法二 cursor.execute(sql2,values) result2=cursor.fetchall() print('result2',result2) id_list=[] tablename_list=[] tabletime_lsit=[] cursor.execute('select*fromtablelistwhereid>%s',[4,]) result3=cursor.fetchall() print('type(result3)',type(result3)) #对((6,'engineeringdata20180901','1535731200'),)类型数据的提取 foriinrange(len(result3)): id_list.append(result3[i][0]) tablename_list.append(result3[i][1]) tabletime_lsit.append(result3[i][2]) print(id_list) print(tabletime_lsit) print(tablename_list) cursor.close() db.close() #输出结果: result((6,'engineeringdata20180901','1535731200'),(618,'engineeringdata20180904','1535990400')) result2((6,'engineeringdata20180901','1535731200'),(618,'engineeringdata20180904','1535990400')) type(result3)[6,618] ['1535731200','1535990400'] ['engineeringdata20180901','engineeringdata20180904']
输出为list类型:
list_id=[] list_tablename=[] list_tabletime=[] list=get_list('select*fromtablelistwhereid>%s',[4]) print('list:',list) #对[{'id':6,'tablename':'engineeringdata20180901','tabletime':'1535731200'},]类型数据的提取 foriinrange(len(list)): print(list[i]) list_id.append(list[i]['id']) list_tablename.append(list[i]['tablename']) list_tabletime.append(list[i]['tabletime']) print('list_id:',list_id) print('list_tabletime:',list_tabletime) print('list_tablename:',list_tablename) #输出结果为: list:[{'id':6,'tablename':'engineeringdata20180901','tabletime':'1535731200'},{'id':618,'tablename':'engineeringdata20180904','tabletime':'1535990400'}] {'id':6,'tablename':'engineeringdata20180901','tabletime':'1535731200'} {'id':618,'tablename':'engineeringdata20180904','tabletime':'1535990400'} list_id:[6,618] list_tabletime:['1535731200','1535990400'] list_tablename:['engineeringdata20180901','engineeringdata20180904']
补充知识:python下将pymysql返回的元组数据转换为列表
我就废话不多说了,大家还是直接看代码吧!
fromitertoolsimportchain ... sql="selectelemsfromtable" cursor.execute(sql) elems=cursor.fetchall() resultlist=list(chain.from_iterable(elems)) ...
以上这篇python数据库查询返回list或tuple实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。