python 数据库查询返回list或tuple实例


Posted in Python onMay 15, 2020

MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.DictCursor就行。

默认程序:

import MySQLdb
db = MySQLdb.connect(host='localhost', user='root', passwd='123456', db='test')
cur = db.cursor()
cur.execute('select * from user')
rs = cur.fetchall()
print rs
# 返回类似如下
# ((1000L, 0L), (2000L, 0L), (3000L, 0L))

修改后:

import MySQLdb
import MySQLdb.cursors
db = MySQLdb.connect(host='localhost', user='root', passwd='123456', db='test',
           cursorclass=MySQLdb.cursors.DictCursor)
cur = db.cursor()
cur.execute('select * from user')
rs = cur.fetchall()
print rs
# 返回类似如下
# ({'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)

我的实践:

输出为元组类型:

import pymysql
 
db = pymysql.connect("localhost", "root", "123456", "filestore")
cursor = db.cursor()
sql='select * from tablelist where id>%s' %4
#查询方法一
cursor.execute(sql)
result=cursor.fetchall()
print('result',result)
 
sql2='select * from tablelist where id>%s'
values=('4') # 此处为元组类型
#查询方法二
cursor.execute(sql2,values)
result2=cursor.fetchall()
print('result2',result2)
id_list=[]
tablename_list=[]
tabletime_lsit=[]
cursor.execute('select * from tablelist where id>%s',[4,])
result3=cursor.fetchall()
print('type(result3)',type(result3))
#对((6, 'engineeringdata20180901', '1535731200'),)类型数据的提取
for i in range(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) <class 'tuple'>
[6, 618]
['1535731200', '1535990400']
['engineeringdata20180901', 'engineeringdata20180904']

输出为list类型:

list_id=[]
list_tablename=[]
list_tabletime=[]
list=get_list('select * from tablelist where id>%s',[4])
print('list:',list)
# 对[{'id': 6, 'tablename': 'engineeringdata20180901', 'tabletime': '1535731200'},]类型数据的提取
for i in range(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 返回的元组数据转换为列表

我就废话不多说了,大家还是直接看代码吧!

from itertools import chain
...
sql="select elems from table"
cursor.execute(sql)
elems = cursor.fetchall()
resultlist = list(chain.from_iterable(elems))
...

以上这篇python 数据库查询返回list或tuple实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之用Python计算
Sep 12 Python
python负载均衡的简单实现方法
Feb 04 Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 Python
Python 操作 ElasticSearch的完整代码
Aug 04 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 Python
详解python with 上下文管理器
Sep 02 Python
python输入中文的实例方法
Sep 14 Python
详解PyTorch模型保存与加载
Apr 28 Python
Python如何加载模型并查看网络
Jul 15 Python
基于Python实现nc批量转tif格式
Aug 14 Python
Python基于gevent实现高并发代码实例
May 15 #Python
Django bulk_create()、update()与数据库事务的效率对比分析
May 15 #Python
Python实现aes加密解密多种方法解析
May 15 #Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 #Python
重写django的model下的objects模型管理器方式
May 15 #Python
Python基于pip实现离线打包过程详解
May 15 #Python
Django在Model保存前记录日志实例
May 14 #Python
You might like
php 上传功能实例代码
2010/04/13 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
利用php输出不同的心形图案
2016/04/22 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
Javascript变量作用域详解
2013/12/06 Javascript
JQuery中使用on方法绑定hover事件实例
2014/12/09 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
2016/09/20 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
Vuex的热更替如何实现
2020/06/05 Javascript
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
Python中threading模块join函数用法实例分析
2015/06/04 Python
Python解析命令行读取参数--argparse模块使用方法
2018/01/23 Python
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
举例说明类变量和实例变量的区别
2016/06/30 面试题
北京大学自荐信范文
2014/01/28 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
委托公证书范本
2014/04/03 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
python元组打包和解包过程详解
2021/08/02 Python