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实例代码
Dec 18 Python
python判断字符串是否包含子字符串的方法
Mar 24 Python
Python3.5 Pandas模块之Series用法实例分析
Apr 23 Python
Python实现CNN的多通道输入实例
Jan 17 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
Mar 18 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
Python如何将装饰器定义为类
Jul 30 Python
python 实现弹球游戏的示例代码
Nov 17 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 01 Python
Python实战之实现简易的学生选课系统
May 25 Python
Django实现drf搜索过滤和排序过滤
Jun 21 Python
Python集合的基础操作
Nov 01 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
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
2016/02/25 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
跟老齐学Python之正规地说一句话
2014/09/28 Python
Python中的zip函数使用示例
2015/01/29 Python
Python实现合并字典的方法
2015/07/07 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
中介业务员岗位职责
2014/04/09 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
清明节演讲稿
2014/05/27 职场文书
先进员工获奖感言
2014/08/14 职场文书
奖学金感谢信
2015/01/21 职场文书
工作简历自我评价
2015/03/11 职场文书
表扬信格式模板
2015/05/05 职场文书