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 相关文章推荐
wxpython学习笔记(推荐查看)
Jun 09 Python
Python使用ftplib实现简易FTP客户端的方法
Jun 03 Python
python append、extend与insert的区别
Oct 13 Python
python Crypto模块的安装与使用方法
Dec 21 Python
PyCharm代码格式调整方法
May 23 Python
利用python和百度地图API实现数据地图标注的方法
May 13 Python
Python自定义函数计算给定日期是该年第几天的方法示例
May 30 Python
python设置环境变量的原因和方法
Jun 24 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
python对XML文件的操作实现代码
Mar 27 Python
浅谈Python 函数式编程
Jun 20 Python
Python实现石头剪刀布游戏
Jan 20 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
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
基于jquery的$.ajax async使用
2011/10/19 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
jQuery实现垂直半透明手风琴特效代码分享
2015/08/21 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
VSCode使用之Vue工程配置eslint
2019/04/30 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
win10系统中安装scrapy-1.1
2016/07/03 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
家长给孩子的评语
2014/01/30 职场文书
学生打架检讨书
2014/02/14 职场文书
应届大专毕业生自我鉴定
2014/04/08 职场文书
好的旅游活动方案
2014/08/19 职场文书
母亲节寄语大全
2015/02/27 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
2015初中团委工作总结
2015/07/28 职场文书