python同步两张数据表_Python第16课:两个数据表如何比对碰撞?(一)

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

Python第16课:两个数据表如何比对碰撞?(一)

时间 2019-01-29下午4:00

主讲刘培富

地点 四楼电教室

任务:

在某项工作中,采集到表B,数据约10万。这一表中,是否包含重点人?需要将表B与重点人表A进行比对碰撞。已知表A数据约30万。要求:编辑python语句,用表B的gmsfhm字段与表A的gmsfhm字段进行比对碰撞,比对结果自动生成一个Excel表。

分析:

对两个数据表进行比对碰撞,在实战中使用非常频繁。对python来说,这是轻而易举的事。怎么样实现呢?需要两步:

第一步,在不考虑数据量的情况下,先搭建一个比对模型。基本思路是,先从A表中把SFZH遍历出来,存到一个列表里。然后遍历B表,用每一条记录,与列表进行比对,如果比中,则记录。

第二步,对这个模型进行实例化,面临一个问题,如何把这两个庞大的表,导入到数据库中?需要用到包xlrd

下面,对第一步进行作业:

首先,通过oracle建立两个表,分别是:

表A,表名zaitao,字段:id,xm,gmsfhm

表B,表名diandong,字段:id,xm,gmsfhm,chepai

分别向A表和B表插入一定量的数据记录。

比对代码如下:

import cx_Oracle

from time import ctime

print(“开始时间:”+ctime())

conn=cx_Oracle.connect(‘lpf/jxsr****@218.95.****:6****/orcl’)

cur=conn.cursor()

a=[]

sql=”select *from zaitao”

cur.execute(sql)

data=cur.fetchall()

for iin data:

a.append(i[2])

jg=””

sql=”select *from diandong”

cur.execute(sql)

data=cur.fetchall()

for i in data:

for j in a:

if i[2]==j:

jg+=j+”,”

cur.close()

conn.close()

print(“比对结果如下:%s”%(jg))

print(“结束时间:”+ctime())

明天接着讲,如何把Excel表的数据,读取并存入到oracl数据库中,如何用python生成Excel数据表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值