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

下面开始实战,

首先,编写链接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. Ruby on Rails开发Web应用的基本概念

    Web应用架构 C/S架构 Web应用从最初就採用C/S架构.Server负责监听client请求,提供资源,Client向server发起请求并渲染页面.两者通过TCP/IP协议栈之上的HTTP协议 ...

  2. server宕机监控、检測、报警程序(139绑定手机短信报警)monitor_down.sh

    宕机监控报警程序 一.   需求来源 宕机对运维人员来说,最痛苦了.怎样检測一台server是否还在正常执行,假设该server宕机,怎样在第一时间监測到并通知一线运维人员进行维护,最大化降低损失. ...

  3. VS2015使用scanf报错解决方案

    版权声明:本文为博主原创文章,未经博主允许不得转载. 方法一:在程序最前面加#define _CRT_SECURE_NO_DEPRECATE: 方法二:在程序最前面加#define _CRT_SECU ...

  4. .Net Mvc4 Kendo Grid Demo

    看见人家项目中用到了Kendo Grid组件,感觉不错,于是就没有压制住自己内心的好奇心!嘿嘿,咱们开始吧,步骤很简单,理解起来也很容易. 首先我们创建一个空的ASP.NET MVC 4 Web 应用 ...

  5. python中,str和repr的区别

    str函数,它会把值转换为合理形式的字符串,以便用户可以理解. repr会创建一个字符串,它以合法的Python表达式的形式来表示值. 例如: >>> print repr(&quo ...

  6. 【转】CentOS 使用yum命令安装出现错误提示”could not retrieve mirrorlist http://mirrorlist.centos.org ***”

    源自:http://www.cnblogs.com/yangbingqi/p/3328610.html 刚安装完CentOS,使用yum命令安装一些常用的软件,使用如下命令:yum grouplist ...

  7. Day 1: How to install jedi/codeintel plugin for sublime on Linux

    Step 1, Install sublime3 Download sublime2/3 from http://www.sublimetext.com/ $tar -jxvf sublime_tex ...

  8. 《Pointers On C》读书笔记(第二章 基本概念)

    1.从源代码到生成可执行程序的过程整体上可以分为两个阶段:编译和链接.其中,编译过程大致上又可分为:预处理.编译和汇编.预处理阶段主要对源代码中的预处理指令(包含宏定义指令<如 #define& ...

  9. HortonWorks

    http://zh.hortonworks.com/products/hortonworks-sandbox/

  10. 利用 Android Studio 和 Gradle 打包多版本APK

    在项目开发过程中,经常会有需要打包不同版本的 APK 的需求. 比如 debug版,release版,dev版等等. 有时候不同的版本中使用到的不同的服务端api域名也不相同. 比如 debug_ap ...