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数据可视化正态分布简单分析及实现代码
Dec 04 Python
详解TensorFlow在windows上安装与简单示例
Mar 05 Python
python如何定义带参数的装饰器
Mar 20 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
详解Django中六个常用的自定义装饰器
Jul 04 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
numpy.linalg.eig() 计算矩阵特征向量方式
Nov 29 Python
Pytoch之torchvision.transforms图像变换实例
Dec 30 Python
python Django 反向访问器的外键冲突解决
May 20 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
教你利用python实现企业微信发送消息
May 23 Python
Python保存并浏览用户的历史记录
Apr 29 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使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
Angular 根据 service 的状态更新 directive
2016/04/03 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
Koa 中的错误处理解析
2019/04/09 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
德国团购网站:Groupon德国
2018/03/13 全球购物
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
法学毕业生自荐信
2013/11/13 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
高一军训决心书
2015/02/05 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers
Go获取两个时区的时间差
2022/04/20 Golang
MySQL 计算连续登录天数
2022/05/11 MySQL
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers