通过上一步,环境已搭建好了。

下面开始实战,

首先,编写链接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数据库数据做对比(二)-代码编写测试的更多相关文章

  1. 通过读取excel数据和mysql数据库数据做对比(一)-win环境准备

    要想操作excel和mysql首先需要安装python,然后是安装excel和mysql插件: 第一步安装python: 直接百度搜索,下载安装就可以了. 第二步安装excel插件: 首先到这个htt ...

  2. 将Excel数据导入mysql数据库的几种方法

    将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...

  3. 把execel表数据导入mysql数据库

    今天,是我来公司第二周的第一天. 作为新入职的实习生,目前还没适合我的实质项目工作,今天的学习任务是: 把execel表数据导入到mysql数据库,再练习下java操作JDBC. 先了解下execel ...

  4. MapReduce 程序mysql JDBC驱动类找不到原因及学习hadoop写入数据到Mysql数据库的方法

    报错 :ClassNotFoundException: com.mysql.jdbc.Driver 需求描述: hadoop需要动态加载个三方jar包(比如mysql JDBC 驱动包),是在MR结束 ...

  5. MySQL数据库数据存放位置修改

    MySQL数据库数据存放位置修改 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方 ...

  6. 在Linux环境下,将Solr部署到tomcat7中,导入Mysql数据库数据, 定时更新索引

    什么是solr solr是基于Lucene的全文搜索服务器,对Lucene进行了扩展优化. 准备工作 首先,去下载以下软件包: JDK8:jdk-8u60-linux-x64.tar.gz TOMCA ...

  7. PHP如何通过SQL语句将数据写入MySQL数据库呢?

    1,php和MySQL建立连接关系 2,打开 3,接受页面数据,PHP录入到指定的表中 1.2两步可直接使用一个数据库链接文件即可:conn.php <?phpmysql_connect(&qu ...

  8. Ubuntu上更改MySQL数据库数据存储目录

    之前写过一篇博客"MySQL更改数据库数据存储目录",当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之 ...

  9. mysql数据库数据(字段数过大)太多导入不了的解决方法

    mysql数据库数据(字段数过大)太多导入不了的决方法: 1.打开navicat 工具 2.在数据库上右键,执行右键菜单命令“命令列界面” 3.在打开的窗口中,运行set global max_all ...

随机推荐

  1. BoundsChecker使用

      转载:http://www.cnitblog.com/qiuyangzh/archive/2005/07/14/975.html 1 前言 我在本文中具体介绍了測试工具NuMega Devpart ...

  2. android 强制设置横屏 判断是横屏还是竖屏

    判断activity 是横屏还是竖屏  方法 1: //根据设备配置信息 Configuration cf= this.getResources().getConfiguration(); //获取设 ...

  3. 用js获取周、月第一天和最后一天(转载)

    var getCurrentWeek = function (day) { var days = ["周日", "周一", "周二", &q ...

  4. java获取当前路径的几种方法

    1.利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty("user.dir"));//use ...

  5. html5 meta标签

     <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-sca ...

  6. 原生js判断某个元素是否有指定的class名的几种方法

    [注意]以下方法只对class只有一个值的情况下操作 ************************************************************* 结构部分: <d ...

  7. 浅谈Mybatis(一)

    一.MyBatis引言 1.基本概念 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google co ...

  8. jacksons转换大小写处理

    import com.fasterxml.jackson.databind.ObjectMapper; 1.注意导入的objectMapper包一致 另:jackson的注解大全 https://gi ...

  9. Hbase Region Server 启动失败

    错误如下:Master rejected startup because clock is out of sync org.apache.hadoop.hbase.ClockOutOfSyncExce ...

  10. codeforces 242E. XOR on Segment 线段树

    题目链接 给n个数, 两种操作, 一种是求区间内的数的和, 一种是将区间内的数异或x. 异或x没有什么思路, 单个异或肯定超时, 区间异或也没有办法做....后来才知道可以按位建线段树, 这样建20棵 ...