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 06 Python
编程语言Python的发展史
Sep 26 Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
Python正则表达式和元字符详解
Nov 29 Python
详解python使用turtle库来画一朵花
Mar 21 Python
django-filter和普通查询的例子
Aug 12 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
使用python写一个自动浏览文章的脚本实例
Dec 05 Python
Python中使用gflags实例及原理解析
Dec 13 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
python 列表推导和生成器表达式的使用
Feb 01 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中SESSION使用中的一点经验总结
2012/03/30 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
jquery教程ajax请求json数据示例
2014/01/13 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
node.js监听文件变化的实现方法
2019/04/17 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
python os.path模块常用方法实例详解
2018/09/16 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
python 实现有道翻译功能
2021/02/26 Python
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
Shell如何接收变量输入
2016/08/06 面试题
人力资源专员岗位职责
2014/01/30 职场文书
装修设计师求职信
2014/02/26 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
北京奥运会主题口号
2014/06/13 职场文书
求职教师自荐书
2014/06/19 职场文书
学校端午节活动总结
2015/02/11 职场文书
python实现学生信息管理系统(面向对象)
2022/06/05 Python