python 操作mysql数据中fetchone()和fetchall()方式


Posted in Python onMay 15, 2020

fetchone()

返回单个的元组,也就是一条记录(row),如果没有结果 则返回 None

fetchall()

返回多个元组,即返回多个记录(rows),如果没有结果 则返回 ()

需要注明:在MySQL中是NULL,而在Python中则是None

补充知识:python之cur.fetchall与cur.fetchone提取数据并统计处理

数据库中有一字段type_code,有中文类型和中文类型编码,现在对type_code字段的数据进行统计处理,编码对应的字典如下:

{'ys4ng35toofdviy9ce0pn1uxw2x7trjb':'娱乐',
  'vekgqjtw3ax20udsniycjv1hdsa7t4oz':'经济',
  'vjzy0fobzgxkcnlbrsduhp47f8pxcoaj':'军事',
  'uamwbfqlxo7bu0warx6vkhefigkhtoz3':'政治',
  'lyr1hbrnmg9qzvwuzlk5fas7v628jiqx':'文化',
 }

python 操作mysql数据中fetchone()和fetchall()方式

其中数据库的32位随机编码生成程序如下:

string.ascii_letters 对应字母(包括大小写), string.digits(对应数字) ,string.punctuation(对应特殊字符)

import string
import random
 
def get_code():
 return ''.join(random.sample(string.ascii_letters + string.digits + string.punctuation, 32))
print(get_code())
 
def get_code1():
 return ''.join(random.sample(string.ascii_letters + string.digits, 32))
testresult= get_code1()
print(testresult.lower())
print(type(testresult))

结果:

)@+t37/b|UQ[K;!spj<(>%r9"PokwTe=
igwle98kgqtcprke7byvq12xnhucmz4v
<class 'str'>

cur.fetchall:

import pymysql
import pandas as pd
 
conn = pymysql.Connect(host="127.0.0.1",port=3306,user="root",password="123456",charset="utf8",db="sql_prac")
 
cur = conn.cursor()
print("连接成功")
sql = "SELECT type_code,count(1) as num FROM test GROUP BY type_code ORDER BY num desc"
 
cur.execute(sql)
res = cur.fetchall()
print(res)

(('ys4ng35toofdviy9ce0pn1uxw2x7trjb', 8), ('vekgqjtw3ax20udsniycjv1hdsa7t4oz', 5), ('vjzy0fobzgxkcnlbrsduhp47f8pxcoaj', 3), ('uamwbfqlxo7bu0warx6vkhefigkhtoz3', 3), ('娱乐', 2), ('lyr1hbrnmg9qzvwuzlk5fas7v628jiqx', 1), ('政治', 1), ('经济', 1), ('军事', 1), ('文化', 1))

res = pd.DataFrame(list(res), columns=['name','value'])
print(res)

python 操作mysql数据中fetchone()和fetchall()方式

dicts = {'ys4ng35toofdviy9ce0pn1uxw2x7trjb':'娱乐',
  'vekgqjtw3ax20udsniycjv1hdsa7t4oz':'经济',
  'vjzy0fobzgxkcnlbrsduhp47f8pxcoaj':'军事',
  'uamwbfqlxo7bu0warx6vkhefigkhtoz3':'政治',
  'lyr1hbrnmg9qzvwuzlk5fas7v628jiqx':'文化',
  }
res['name'] = res['name'].map(lambda x:dicts[x] if x in dicts else x)
print(res)
name value
0 娱乐  8
1 经济  5
2 军事  3
3 政治  3
4 娱乐  2
5 文化  1
6 政治  1
7 经济  1
8 军事  1
9 文化  1
#分组统计
result = res.groupby(['name']).sum().reset_index()
print(result)
name value
0 军事  4
1 娱乐  10
2 政治  4
3 文化  2
4 经济  6

#排序
result = result.sort_values(['value'], ascending=False)

name value
1 娱乐  10
4 经济  6
0 军事  4
2 政治  4
3 文化  2
#输出为list,前端需要的数据格式
data_dict = result.to_dict(orient='records')
print(data_dict)

[{'name': '娱乐', 'value': 10}, {'name': '经济', 'value': 6}, {'name': '军事', 'value': 4}, {'name': '政治', 'value': 4}, {'name': '文化', 'value': 2}]

cur.fetchone

先测试SQL:

python 操作mysql数据中fetchone()和fetchall()方式

代码:

import pymysql
import pandas as pd
 
conn = pymysql.Connect(host="127.0.0.1",port=3306,user="root",password="123456",charset="utf8",db="sql_prac")
 
cur = conn.cursor()
print("连接成功")
sql = "select count(case when type_code in ('ys4ng35toofdviy9ce0pn1uxw2x7trjb','娱乐') then 1 end) 娱乐," \
  "count(case when type_code in ('vekgqjtw3ax20udsniycjv1hdsa7t4oz','经济') then 1 end) 经济," \
  "count(case when type_code in ('vjzy0fobzgxkcnlbrsduhp47f8pxcoaj','军事') then 1 end) 军事," \
  "count(case when type_code in ('uamwbfqlxo7bu0warx6vkhefigkhtoz3' ,'政治') then 1 end) 政治," \
  "count(case when type_code in ('lyr1hbrnmg9qzvwuzlk5fas7v628jiqx','文化') then 1 end) 文化 from test"
cur.execute(sql)
res = cur.fetchone()
print(res)

返回结果为元组:

(10, 6, 4, 4, 2)

data = [
    {"name": "娱乐", "value": res[0]},
    {"name": "经济", "value": res[1]},
    {"name": "军事", "value": res[2]},
    {"name": "政治", "value": res[3]},
    {"name": "文化", "value": res[4]}
]
result = sorted(data, key=lambda x: x['value'], reverse=True)
print(result)

结果和 cur.fetchall返回的结果经过处理后,结果是一样的:

[{'name': '娱乐', 'value': 10}, {'name': '经济', 'value': 6}, {'name': '军事', 'value': 4}, {'name': '政治', 'value': 4}, {'name': '文化', 'value': 2}]

以上这篇python 操作mysql数据中fetchone()和fetchall()方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python生成url短链接的方法
May 04 Python
python搭建虚拟环境的步骤详解
Sep 27 Python
你眼中的Python大牛 应该都有这份书单
Oct 31 Python
python实现在IDLE中输入多行的方法
Apr 19 Python
python抽取指定url页面的title方法
May 11 Python
解决python flask中config配置管理的问题
Jul 26 Python
基于Django静态资源部署404的解决方法
Jul 28 Python
Python依赖包整体迁移方法详解
Aug 15 Python
如何使用Python破解ZIP或RAR压缩文件密码
Jan 09 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
Feb 17 Python
python实现数字炸弹游戏
Jul 17 Python
使用Python实现音频双通道分离
Dec 25 Python
Python实现UDP程序通信过程图解
May 15 #Python
解决pymysql cursor.fetchall() 获取不到数据的问题
May 15 #Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
May 15 #Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 #Python
django 利用Q对象与F对象进行查询的实现
May 15 #Python
Python实现电视里的5毛特效实例代码详解
May 15 #Python
python中wx模块的具体使用方法
May 15 #Python
You might like
PHP实现的封装验证码类详解
2013/06/18 PHP
C/S和B/S两种架构区别与优缺点分析
2014/10/23 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
2016/04/15 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
浅谈JavaScript异常处理语句
2015/06/26 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
jquery easyui dataGrid动态改变排序字段名的方法
2017/03/02 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
Python实现在线音乐播放器
2017/03/03 Python
Python学生成绩管理系统简洁版
2020/04/05 Python
python实现图书馆研习室自动预约功能
2018/04/27 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
家庭户外服装:Hawkshead
2017/11/02 全球购物
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
经理职责范文
2013/11/08 职场文书
工作交流会欢迎词
2014/01/12 职场文书
公司晚会主持词
2014/03/22 职场文书
大专生求职信
2014/06/29 职场文书
个人委托书怎么写
2014/09/17 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL