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中字符串前面加r的作用
Jun 04 Python
Django原生sql也能使用Paginator分页的示例代码
Nov 15 Python
用matplotlib画等高线图详解
Dec 14 Python
matplotlib绘图实例演示标记路径
Jan 23 Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 Python
Python检测数据类型的方法总结
May 20 Python
Python转换时间的图文方法
Jul 01 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
通过字符串导入 Python 模块的方法详解
Oct 27 Python
Pytorch训练过程出现nan的解决方式
Jan 02 Python
python根据字典的键来删除元素的方法
Aug 16 Python
Python判断变量是否是None写法代码实例
Oct 09 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+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
PHP 类相关函数的使用详解
2013/05/10 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
JS的反射问题
2010/04/07 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
jQuery解析json格式数据示例
2018/09/01 jQuery
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
Vue 3.0双向绑定原理的实现方法
2019/10/23 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
python列表的常用操作方法小结
2016/05/21 Python
一文总结学习Python的14张思维导图
2017/10/17 Python
浅谈Python实现2种文件复制的方法
2018/01/19 Python
python实现的生成word文档功能示例
2019/08/23 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
体育教育专业毕业生自荐信
2013/11/15 职场文书
库房主管岗位职责
2013/12/31 职场文书
常务副总经理任命书
2014/06/05 职场文书
企业年检委托书范本
2014/10/14 职场文书
教师党员个人总结
2015/02/10 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书