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实现代码行数统计示例分享
Feb 10 Python
浅谈Python中数据解析
May 05 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
Sep 08 Python
Python3之简单搭建自带服务器的实例讲解
Jun 04 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
python matplotlib饼状图参数及用法解析
Nov 04 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
Python tkinter布局与按钮间距设置方式
Mar 04 Python
基于K.image_data_format() == 'channels_first' 的理解
Jun 29 Python
Pygame框架实现飞机大战
Aug 07 Python
Django ModelForm组件原理及用法详解
Oct 12 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设计模式 Composite (组合模式)
2011/06/26 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
火狐下input焦点无法重复获取问题的解决方法
2014/06/16 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
2020/12/19 Vue.js
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
Python File(文件) 方法整理
2019/02/18 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
如何用SQL语句进行模糊查找
2015/09/25 面试题
九年级科学教学反思
2014/01/29 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
副乡长群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
爱晚亭导游词
2015/02/09 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python
业余无线电通联Q语
2022/02/18 无线电