mysql对比excel文件_通过读取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操作为:好人

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值