通过读取excel数据和mysql数据库数据做对比(二)-代码编写测试
通过上一步,环境已搭建好了。
下面开始实战,
首先,编写链接mysql的函数conn_sql.py
import pymysql def sql_conn(u,pwd,h,db):
conn=pymysql.connect(user=u,passwd=pwd,host=h,db=db)
#print("连接数据库"+db+"成功了!!")
return conn
在编写,查询数据库的语句:sql.py
import pymysql
import conn_sql def dd_cz(dd_h):
conn=conn_sql.sql_conn("数据库连接名称","数据库密码","数据库ip","数据库名称")
cursor=conn.cursor()
cursor.execute("select count(id) from user where ordnum=%s",dd_h)
data=cursor.fetchone()
#print('data=',data)
return data
注意点:(在测试时,有一个问题就是,在cursor.execute("select count(id) from user where ordnum=%s" % dd_h) 这句话中的参数引导时,如果换成%号,会出现数据库报错。所以一定要用,)
在创建zx_duibi.py
import xlrd,sys
import xdrlib
import os
from sql import dd_cz #打开Excel文件读取数据
def open_excel(file="1.xls"):
try:
data=xlrd.open_workbook(file)
print("open sucess!")
return data
except Exception:
print(str(e)) #根据索引获取Excel表格中的数据
#参数:file:Excel文件路径 colnameindex:表头列名所在行的索引
#by_index:表的索引 def excel_table_byindex(file="1.xls",colnameindex=0,by_index=0):
#打开表
data=open_excel(file)
#获取工作表
table=data.sheets()[by_index]
nrows=table.nrows #行数
#获取某一行数据
colnames=table.row_values(colnameindex)
list=[]
#3跳转行数
for rownum in range(1,nrows):
#获取某一行的值
row=table.row_values(rownum)
if row:
col_l={}
col_l[colnames[3]]=row[3]
list.append(col_l)
return list def main():
tables=excel_table_byindex()
#excel总数
i=0
#不存在的
j=0
for row in tables:
#根据exl表中的数据,查询数据库中的数据
ddh=dd_cz(row["列标题"])
#列标题是否存在
ddh_cz=ddh[0] if ddh_cz == 0:
print("列标题:%s,不存在"%(row["列标题"]))
j+=1
else:
print("存在:%s"%(row["列标题"]))
i+=1
print("总数为:%s" % i )
print("不存在为:%s"%j) if __name__=="__main__":
main()
至此根据excel的数据和数据中的数据做对比的程序就ok了
参考文档:
mysql操作为:好人
excel操作为:好人
通过读取excel数据和mysql数据库数据做对比(二)-代码编写测试的更多相关文章
- 通过读取excel数据和mysql数据库数据做对比(一)-win环境准备
要想操作excel和mysql首先需要安装python,然后是安装excel和mysql插件: 第一步安装python: 直接百度搜索,下载安装就可以了. 第二步安装excel插件: 首先到这个htt ...
- 将Excel数据导入mysql数据库的几种方法
将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...
- 把execel表数据导入mysql数据库
今天,是我来公司第二周的第一天. 作为新入职的实习生,目前还没适合我的实质项目工作,今天的学习任务是: 把execel表数据导入到mysql数据库,再练习下java操作JDBC. 先了解下execel ...
- MapReduce 程序mysql JDBC驱动类找不到原因及学习hadoop写入数据到Mysql数据库的方法
报错 :ClassNotFoundException: com.mysql.jdbc.Driver 需求描述: hadoop需要动态加载个三方jar包(比如mysql JDBC 驱动包),是在MR结束 ...
- MySQL数据库数据存放位置修改
MySQL数据库数据存放位置修改 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方 ...
- 在Linux环境下,将Solr部署到tomcat7中,导入Mysql数据库数据, 定时更新索引
什么是solr solr是基于Lucene的全文搜索服务器,对Lucene进行了扩展优化. 准备工作 首先,去下载以下软件包: JDK8:jdk-8u60-linux-x64.tar.gz TOMCA ...
- PHP如何通过SQL语句将数据写入MySQL数据库呢?
1,php和MySQL建立连接关系 2,打开 3,接受页面数据,PHP录入到指定的表中 1.2两步可直接使用一个数据库链接文件即可:conn.php <?phpmysql_connect(&qu ...
- Ubuntu上更改MySQL数据库数据存储目录
之前写过一篇博客"MySQL更改数据库数据存储目录",当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之 ...
- mysql数据库数据(字段数过大)太多导入不了的解决方法
mysql数据库数据(字段数过大)太多导入不了的决方法: 1.打开navicat 工具 2.在数据库上右键,执行右键菜单命令“命令列界面” 3.在打开的窗口中,运行set global max_all ...
随机推荐
- Android 4.2启动代码分析(一)
Android系统启动过程分析 Android系统的框架架构图如下(来自网上): Linux内核启动之后----->就到Android的Init进程 ----->进而启动Android ...
- STL 源代码剖析 算法 stl_algo.h -- merge sort
本文为senlie原创.转载请保留此地址:http://blog.csdn.net/zhengsenlie merge sort ----------------------------------- ...
- Android ROM 制作教程
本文来自: 起点手机论坛 具体文章參考:http://www.qdppc.com/forum.php?mod=viewthread&tid=43751&fromuid=1 1.Andr ...
- asp.net MVC Razor 语法(3)
编程逻辑:执行基于条件的代码. If 条件 C# 允许您执行基于条件的代码. 如需测试某个条件,您可以使用 if 语句.if 语句会基于您的测试来返回 true 或 false: if 语句启动代码块 ...
- java正则表达式,将字符串中\后的第一个字母变成大写
java正则表达式,将字符串中\后的第一个字母变成大写 例子是比较简单,注意的是java中的“\\”意义是:我要插入一个正则表达式的反斜线,所以其后面的字符有特殊有意义.所以普通反斜线应该是" ...
- decimal类型不能为空,自定义update更新null值的问题。
if (!string.IsNullOrEmpty(yt_time_limit_1)) { entity["yt_time_limit_1"] = Convert.ToDecima ...
- c# 小数的处理
数值类型处理小数 1.Math.Round(x) 四舍五入 Math.Round(0.4) 0 Math.Round(-1.7) -2 2.Math.floor(x) 小于等于 x, ...
- Maven java项目管理工具
Maven java项目管理工具 1.安装maven 下载最新的maven 下载地址 http://maven.apache.org/download.cgi 传到要安装的目录 例如/opt/下 # ...
- Ubuntu的快捷键
正如大家都知道的那样,Ubuntu的终端的Terminal能快捷的操作该linux系统,减少鼠标的使用.(vim党,尽量避免使用鼠标) 在Ubuntu中,终端的快捷键为(大小写无关的): Ctrl + ...
- AutoCompleteTextView 自动提示
在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息,这种效果在Android中是用AutoCompleteTextView实现的. public class MainActivity ex ...