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内置函数bin() oct()等实现进制转换
Dec 30 Python
Python删除windows垃圾文件的方法
Jul 14 Python
python如何在终端里面显示一张图片
Aug 17 Python
Python单例模式实例详解
Mar 01 Python
详解python OpenCV学习笔记之直方图均衡化
Feb 08 Python
python3 pandas 读取MySQL数据和插入的实例
Apr 20 Python
python实现爬山算法的思路详解
Apr 09 Python
pandas DataFrame创建方法的方式
Aug 02 Python
Python shutil模块用法实例分析
Oct 02 Python
python 实现兔子生兔子示例
Nov 21 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
Feb 25 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
Jun 25 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
解析coreseek for sphinx的使用
2013/06/21 PHP
php中的strpos使用示例
2014/02/27 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
基于Jquery的温度计动画效果
2010/06/18 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
Python闭包函数定义与用法分析
2018/07/20 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
介绍一下XMLHttpRequest对象
2012/02/12 面试题
销售工作岗位职责
2013/12/24 职场文书
法学专业自我鉴定
2014/02/05 职场文书
出纳员的岗位职责
2014/02/22 职场文书
高中语文课后反思
2014/04/27 职场文书
匿名信格式范文
2015/05/27 职场文书
党员身份证明材料
2015/06/19 职场文书
python数字类型和占位符详情
2022/03/13 Python
Python如何将list中的string转换为int
2022/07/15 Ruby