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基于multiprocessing的多进程创建方法
Jun 04 Python
Python 中的with关键字使用详解
Sep 11 Python
python 读写、创建 文件的方法(必看)
Sep 12 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
Python中的函数式编程:不可变的数据结构
Oct 08 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
Dec 24 Python
Django 实现外键去除自动添加的后缀‘_id’
Nov 15 Python
Python 中如何实现参数化测试的方法示例
Dec 10 Python
python 邮件检测工具mmpi的使用
Jan 04 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 Python
pip install命令安装扩展库整理
Mar 02 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
用Flash图形化数据(一)
2006/10/09 PHP
php获得当前的脚本网址
2007/12/10 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
javascript实现的动态文字变换
2007/07/28 Javascript
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
Js保留小数点的4种效果实现代码分享
2014/04/12 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
深入理解Django的中间件middleware
2018/03/14 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
Python多进程fork()函数详解
2019/02/22 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
进修护士自我鉴定
2013/10/14 职场文书
给幼儿园老师的表扬信
2014/01/19 职场文书
自我评价的范文
2014/02/02 职场文书
小学生读书活动总结
2014/06/30 职场文书
苏州园林导游词
2015/02/03 职场文书
初中教师个人工作总结
2015/02/10 职场文书
优秀英文求职信范文
2015/03/19 职场文书
2015年质检工作总结
2015/05/04 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书