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实现封装得到virustotal扫描结果
Oct 05 Python
python解决汉字编码问题:Unicode Decode Error
Jan 19 Python
使用Python对SQLite数据库操作
Apr 06 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
python format 格式化输出方法
Jul 16 Python
浅谈Python中eval的强大与危害
Mar 13 Python
对PyQt5中的菜单栏和工具栏实例详解
Jun 20 Python
Python日志无延迟实时写入的示例
Jul 11 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
python实现获取单向链表倒数第k个结点的值示例
Oct 24 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 Python
python实现局部图像放大
Nov 17 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
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
jQuery操作css样式
2017/05/15 jQuery
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
Vuex新手的理解与使用详解
2019/05/31 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
在Python中定义和使用抽象类的方法
2016/06/30 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
python爬虫之自动登录与验证码识别
2020/06/15 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
Keras 加载已经训练好的模型进行预测操作
2020/06/17 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
牵手50香港:专为黄金岁月的单身人士而设的交友网站
2020/08/14 全球购物
幼儿教师思想汇报
2014/01/10 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
法人授权委托书格式
2014/04/08 职场文书
小学语文业务学习材料
2014/06/02 职场文书
2015年度党员自我评价范文
2015/03/03 职场文书
PHP解决高并发问题
2021/04/01 PHP