【Python】MySQLdb库的使用以及格式化输出字段中的值

article/2025/9/25 23:50:11

一.项目简单介绍

我们获取字段的内容方式有很多种,但基本都要ctrl+c(复制)ctrl+v粘贴,然后还有手动去更改

而以python作为处理工具将会快很多,本项目需要安装的库:MySQLdb,pandas,numpy

比如我们想要在每个不同的值加上"" 而复制的数据为下图

那么我们每次都要在每行字段之间加上""和,非常的麻烦,那么如何处理这种将他转换为字符串列表的形式,并将列表属性去掉.

二.内容加符号格式化输出解决方案

1.导入库,as后面为别名

import MySQLdb
import pandas as pd
import numpy as np

2.pandas读取文件数据:

 E:/py/txt/var.txt为我存放数据内容的表,其内容为sql中提取表中品牌字段中不同的值,原表为京东手机一年的销售数据:

# 导入文件,并设置index_col=None,
df = pd.read_csv('E:/py/txt/var.txt', index_col=None, engine='python', names=['品牌'])
print(df)

此时数据类型为DataFrame,为二维表

其中属性index_col值有三种,整数型,序列,布尔(默认为None)

index_col=None 列为index的值,即列使用默认索引 0 1 2 3....

index_col=0 第一列为index值,即此时第一列内容作为索引

运行结果如下:

        品牌
0     vivo
1       荣耀
2       小米
3    Apple
4       纽曼
5       华为
6   realme
7     oppo
8       三星
9      努比亚
10     一加 
11      魅族
12    摩托罗拉
13      其它
14      酷派
15      朵唯
16     诺基亚
17     中兴 
18    飞利浦 
19     尼凯恩
20      天语
21      酷比
22      糖果
23      金立
24   nzone
25      黑鲨

# 将DataFrame格式转换为数组
array = np.array(df)

3.循环遍历输出并格式化输出

range(1, 26)若超出此范围会报错提示超出索引范围,但是不影响运行结果

IndexError: index 26 is out of bounds for axis 0 with size 26

for i in range(1, 26):s = df[i-1:i]array[i] = np.array(s)print(f"%c{str(*array[i])}%c," % (34, 34))

其中s=df[i-1:i]为循环输出df中每一条数据,类似series的索引输出

array[i] = np.array(s),将数据循环转换为数组并赋值

%c为格式化输出字符 并以ASCII码值为34的输出 % (34,34)

以列表形式输出:

# 数组转列表
a_list = array.tolist()
print(a_list)

[['vivo'], ['vivo'], ['荣耀'], ['小米'], ['Apple'], ['纽曼'], ['华为'], ['realme'], ['oppo'], ['三星'], ['努比亚'], ['一加 '], ['魅族'], ['摩托罗拉'], ['其它'], ['酷派'], ['朵唯'], ['诺基亚'], ['中兴 '], ['飞利浦 '], ['尼凯恩'], ['天语'], ['酷比'], ['糖果'], ['金立'], ['nzone']]

三.Mysqldb库解决数据库提取数据复杂的问题

1.要有相关库,上面已经提到了

2.以下为数据库输出代码

# 打开数据库连接
db = MySQLdb.connect("localhost", "root", "489000", "test", charset='utf8')
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据
version = cursor.fetchone()
print("Database version : %s " % version)
# 循环下标
# Sql预处理语句分组并查询各个品牌
sql = """SELECT 品牌 FROM SHEET1 \GROUP BY 品牌 """
cursor.execute(sql)
for i in range(1, 10000):data = cursor.fetchone()if data is None:breakelse:print(*data)  # 解包输出
# 关闭数据库连接
db.close()

3.循环时为了确保读数完整range范围可以设置大一些,然后在此基础上添加判断条件,

将循环游标读入的数据赋值给data,如果此种为None则终止循环,即再无数据可读,就终止循环并输出,为了保证输出格式为纯数据用*data解包此变量

四.整个过程完整代码及比对:

# _*_ coding:utf-8 _*_
# @Time    : 2022/9/1 9:30
# @Author  : ice_Seattle
# @File    : testprogram.py
# @Software: PyCharmimport MySQLdb
import pandas as pd
import numpy as np
# 打开数据库连接
db = MySQLdb.connect("localhost", "root", "489000", "test", charset='utf8')
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据
version = cursor.fetchone()
print("Database version : %s " % version)
# 循环下标
# Sql预处理语句分组并查询各个品牌
sql = """SELECT 品牌 FROM SHEET1 \GROUP BY 品牌 """
cursor.execute(sql)
for i in range(1, 10000):data = cursor.fetchone()if data is None:breakelse:print(*data)  # 解包输出
# 关闭数据库连接
db.close()
# 导入文件,并设置index_col=None,
df = pd.read_csv('E:/py/txt/var.txt', index_col=None, engine='python', names=['品牌'])
# 将DataFrame格式转换为数组
array = np.array(df)
for i in range(1, 26):s = df[i-1:i]array[i] = np.array(s)print(f"%c{str(*array[i])}%c," % (34, 34))
# 数组转列表
a_list = array.tolist()
print(a_list)

Navicat 运行 SELECT 品牌,count(品牌) from sheet1 group by 品牌结果如下:

 Kettle中spoon.bat运行程序test结果如下

五.总结

 综上,若想提取字段中不同的内容:写好python代码之间运行后要比Navicat和Kettle快的多,且可以加上" "号用于列表等其它的数据转换,减少了复杂的操作步骤.


http://chatgpt.dhexx.cn/article/NYfQlbNq.shtml

相关文章

图片信息用浏览器显示:data:image/png;base64,+图片内容

最近看到若依图片验证码获取方式时,后台返回的是一串验证码字符串: 例如 /9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyM…

图片中隐藏信息——图片隐写术

https://www.jianshu.com/p/72f0d0953ca4 主要原理: 图片是由一个个像素组成的。每个像素由一组(r,g,b)值表示(png格式图片,多一个alpha透明度值)。而对于单个r,g或b,其范围在0~25…

android 获取图片信息 之 ExifInterface

Android--操作图片Exif信息 --------------------------------------------------------------------------------------- 作者:承香墨影 出处:http://plokmju.cnblogs.com/ 更多内容,请阅读本人新书:《Android深入浅出》 欢迎…

图片头文件信息解析

今天发现获取图片的宽高,并不需要把图片完全读完之后再来获取,而只需要读取文件头文件,几十个字节便可以读出文件的宽高。 图片的文件头部存储有该图片相关信息,可以从中读取相应字段,得到尺寸、大小、格式等信息。由于…

图片Exif信息解析(Java实现)

前言 可交换图像文件(Exchangeable Image File,Exif)信息图像在拍摄时保留的相关参数:比如图像信息(厂商,分辨率等),相机拍摄记录(ISO,白平衡,饱和度,锐度等…

java项目实战:处理图片水印,提取图片信息,生成excel表

在这次应用软件设计课程中,要求从今年的软件杯大赛上的项目选择一个实现。我选的是"网店工商信息提取",具体要求就是:从给出的带水印的图片中提取出企业名称和企业注册号,并根据这些信息生成excel表格。 刚刚开始以为这…

nodejs图片读取

response返回都是html/text,向前台输出一张图片用的image/jpeg,服务器读取图片的时候是按照binary的二进制方式读取,给客户端返回的时候也按照binary二进制的方式返回。 从服务器读取一张图片给客户端输出: 效果:输入localhost:…

[软件工具] 如何批量获取图片信息,尺寸、大小、路径、文件名,然后导出表格或者txt的文本,下面教你使用方法

前几天遇到一个比较棘手的需求: 如何获取几万张图片的大量的图片信息,如尺寸、大小、路径、文件名等等, 去看了百度 好多都是教写批处理的文件信息,对批处理不是很懂,写了几次都没成功 然后做这么一款软件&#xff…

APICloud框架——获取本地图片信息

api.getPicture 获取本地图片放置到服务器上或者在app中预览是app的基本功能,今天使用了APICloud框架的api.getPicture这个api获取到的本地图片预览在app中,就像上传qq头像一样,其实就是这个需求,获取本地照片(拍摄照片…

imagemagick 获取图片信息,放大缩小,指定区域,旋转,边框,draw png压缩问题

Table of Contents 1.获取图片信息 2.放大缩小 -resize 3.放大缩小 -sample 4.指定区域 5.旋转 6.添加边框 7.draw的用法 1.获取图片信息 C:\Users\Administrator>magick identify F:\imagemagick\1.jpg F:\imagemagick\1.jpg JPEG 1440x2560 1440x256000 8-bit sRGB …

解决透视变换后图片信息丢失的问题

问题背景:最近在做图像拼接,思路是首先对输入的两幅图进行特征提取,提取的方法使用的是经典的SIFT(Scale-invariant feature transform)算法;然后进行特征匹配,匹配的思路是将一幅图中的特征点以…

wx.getImageInfo(Object object)获取图片信息

微信小程序第一周总结 总结人:陈曦 wx.getImageInfo(Object object)获取图片信息 在小程序/小游戏中使用网络相关的 API 时,每个微信小程序需要事先设置一个通讯域名,小程序只可以跟指定的域名与进行网络通信。包括普通 HTTPS 请求&#xff…

利用Python实现图片信息隐藏

最近上了一门信息隐藏的课,讲的关于技术层面的内容还是蛮多的,但是我也没记住几个。吭吭,言归正传,这两天要交大作业,自己手动实现一种图像信息隐藏,查了一番资料后,决定Python来做(主要是调用包方便),原理很简单,主要利用修改图像RGB通道的某一通道值来隐藏二维信息…

Python获取图片信息小栗子

1.首先我们需要先导入所需要的包,没有的话可以【 pip install ~】 来获取 import requests from lxml import etree 2.接下来我们要进行UA伪装,伪装的目的就是把电脑伪装成人 因为很多wangzahn都有反扒机制,不进行伪装的话根本就无法进行爬…

线性回归用matlab怎么做,matlab中如何应用regress()函数进行线性回归分析?

matlab中如何应用regress()函数进行线性回归分析?回归分析是研究一个随机变量与一个或多个普通变量之间的相关系的统计方法。如果做回归分析,有很多软件都已经封装好了的,我们只需直接调用就可以了。例如Matlab中的regress()就是做线性回归分…

[Matlab]篇----回归分析Matlab命令(regress篇)

[Matlab]篇—-回归分析Matlab命令(regress篇) 一、简介 最近在做回归分析方面的东西,网上查阅相关资料,通过实际调试,对调试结果进行总结。 回归分析法指利用数据统计原理,对大量统计数据进行数学处理,并…

回归(Regression )

回归(Regression ) 模型定义 Regression 就是找到一个函数 functionfunction ,通过输入特征 x,输出一个数值 Scalar。 模型应用 股市预测(Stock market forecast) 输入:过去10年股票的变动、…

数学建模:回归分析——regress 函数

matlab中regress 函数 https://jingyan.baidu.com/article/ca41422f6777aa1eae99ed87.htmlhttps://jingyan.baidu.com/article/ca41422f6777aa1eae99ed87.html 结果 附录 1、数据文本:data1_1 0 68 110 121 23 111 100 37 66 110 12 169 50 46 87 117 16 155 25…

[matlab]多元线性回归-regress函数的用法

转载博客原址:https://blog.csdn.net/YinJianxiang/article/details/81464245 回归分析 回归分析 (英语:Regression Analysis) 是一种统计学上分析数据的方法,目的在于了解两个或多个变量间是否相关、相关方向与强度,并建立数学…

机器学习——regression

1 用线性回归找到最佳拟合直线 线性回归 优点:结果易于理解,计算上不复杂 缺点:对非线性的数据拟合不好 使用数据类型:数值型数据和标称型数据。 回归方程:是根据样本资料通过回归分析所得到的反映一个变量&#xff0…