python读取数据校验数据_python做本地数据与数据库的校验

#coding=utf-8

from pymongo importMongoClient#连接mongo数据库

env ={'dev': {'mongodb_host': 'mongodb://账号:密码@服务地址:端口/数据库','mongodb_db': 'titan1',

},'online': {'mongodb_host': 'mongodb://账号:密码@服务名:端口/数据库','mongodb_db': 'titan',

}

}

current_env= 'dev'client= MongoClient(env[current_env]['mongodb_host'])

database= client[env[current_env]['mongodb_db']]

my_collection=database['car']#连接车辆集合#需要迁移的店铺

defmoveback_shop():

file= open('/Users/huzhihui/Desktop/change_result.txt','a')

with open('/Users/huzhihui/Desktop/moveback_shop.txt','r') as f:

lines= f.readlines()#读取回迁的店铺数据[回迁店铺code 新site_id 新sites 裂变后的大风车店铺B]

n=0for line inlines:

n+=1

print '执行第'+str(n)+'行\n'file.write('执行第'+str(n)+'行\n')#拿到回迁店铺code

shop_code = line.strip('\n').split()[0]

b_shop_code= line.strip('\n').split()[3]#筛选出工具化二手车和工具化新车集合

data1 = my_collection.find({'store':"%s"%shop_code})#大风车商家发的二手车和新车已经变成新的code,老的code查不到

if data1.count()!=0 :#拿到数据库变更后单个车辆的site_id和sites

x=0for single_data indata1:

x+=1

print '执行第'+str(x)+'个车辆\n'file.write('执行第'+str(x)+'个车辆\n')#获取site_id

changed_site_id = single_data.get('site_id')#获取site数组

changed_sites = single_data.get('sites')#获取source

source=single_data.get('source')if source == 'stock_item':#判断是不是集采新车

#拿到文件中基础服务提供的新的site_id

new_site_id=line.strip('\n').split()[1]#拿到文件中基础服务提供的新的sites数组

new_sites=line.strip('\n').split()[2].split(',')

new_sites=map(int,new_sites)#对比数据库中新的site_id和店铺服务提供的新的site_id是否相等

if changed_site_id ==new_site_id:print shop_code+'车辆id:'+str(single_data['_id'])+':site_id成功变更为:'+new_site_id

file.write(shop_code+'车辆id:'+str(single_data['_id'])+':site_id成功变更为:'+new_site_id+'\n')else:print shop_code+'车辆id:'+str(single_data['_id'])+':site_id变更失败'file.write(shop_code+'车辆id:'+str(single_data['_id'])+':site_id变更失败'+'\n')if changed_sites ==new_sites:print shop_code+'车辆id:'+str(single_data['_id'])+ ':sites成功变更'file.write(shop_code+'车辆id:' +str(single_data['_id'])+ ':sites成功变更' + '\n')else:print shop_code+'车辆id:' +str(single_data['_id'])+ ':sites变更失败'file.write(shop_code+'车辆id:'+str(single_data['_id']) + ':sites变更失败' + '\n')else:print shop_code+'车辆id:'+str(single_data['_id'])+'变更失败,应该变更店铺code为:'+b_shop_code+'\n'file.write(shop_code+'车辆id:'+str(single_data['_id'])+'变更失败,应该变更店铺code为:'+b_shop_code+'\n')else:print '查询失败,无法查询到集采新车'+'\n'file.write('查询失败,无法查询到集采新车'+'\n')

t=0

data2= my_collection.find({'store': "%s" %b_shop_code})if data2.count()!=0:for car_data indata2:

t+=1

print '执行第' + str(t) + '个车辆\n'file.write('执行第' + str(t) + '个车辆\n')

source= car_data.get('source')if source =='stock_item':print shop_code +'车辆id:'+str(car_data['_id'])+'变更失败,不应该变更店铺code为:'+b_shop_code+'\n'file.write(shop_code+'车辆id:'+str(car_data['_id'])+'变更失败,不应该变更店铺code为:'+b_shop_code+'\n')else:print shop_code +'车辆id:'+str(car_data['_id'])+ '成功变更为:' + b_shop_code + '\n'file.write(shop_code+'车辆id:'+str(car_data['_id'])+ '成功变更为:' + b_shop_code + '\n')else:print '查询失败,新老code无法查询到任何车辆'file.close()

f.close()if __name__=='__main__':

moveback_shop()#!/usr/bin/env python#-*- coding: utf-8 -*-

importpymysqlfrom pymongo importMongoClientimportpsycopg2defsql1():

db= pymysql.connect(host="", user="", password="",

db="", port=3306, charset='utf8')#已二进制格式打开文件,用于读取

with open("/Users/huzhihui/Desktop/shop.txt", "rb") as f:

lines=f.readlines()#记录错误数据

rf = open("/Users/huzhihui/Desktop/错误数据1", "wb")#记录错误次数

ere =0#记录比对的数据数量

n =0for line inlines:

line= line.strip('\n')

cur=db.cursor()printline#print isinstance(line,str)

try:

cur.execute('select * from baseshop WHERE code="%s"'%line)#cur.execute('select * from baseshop WHERE code=" 13088303331"')

#print 'select * from baseshop WHERE code="%s"'%line

#获取所有记录列表

results =cur.fetchall()assert results[0][0]==1954

printresults[0][0]print results[0][1]print results[0][2]exceptException,e:

ere+= 1rf.writelines(str(e)+ "------" +line)finally:

n+= 1

print "run:" + "第" + str(n) + "错误" +str(ere)

defpsycopg1():

conn= psycopg2.connect(database="cheniu_trade_dev1", user="dev1_trade", password="dev1_trade_pwd", host="", port="5432")

cur=conn.cursor()

cur.execute('select * from cheniu_orders where id = 113395')

rows=cur.fetchall()for row inrows:print "ID =", row[0]print "NAME =", row[1]print "ADDRESS =", row[2]print "SALARY =", row[3], "\n"

defreadFromFile():

f= open("/Users/zwq/Desktop/shop_old.txt", "rb")

lines=f.readlines()for line inlines:

shopcode, oldcode= line.strip('\n').split('\t')print "shopcode:" + shopcode + "oldcode:" +oldcode

f.close()defwriteToFile():

rf= open("/Users/zwq/Desktop/shop_add.txt", "w+")

f= open("/Users/zwq/Desktop/shop.txt", "r+")#从shop.txt读数据,生成两条数据并写入shop_add.txt

lines =f.readlines()for line inlines:

line= line.strip('\n')

rf.write(line+ '\t' + line + "old" + "\n")#去除最后一行的换行

rf.seek(-1, 2)if rf.read(1) == "\n":

rf.seek(-1, 2)

rf.truncate()

rf.close()

f.close()

defreadFromFile1():

f= open("/Users/zwq/Desktop/shop_old.txt", "rb")

n=0

f.seek(-1,2)whileTrue:

n+= 1

print str(n) + "-------"lines= f.read(1)printlinesif n ==30:break

if lines == "\n":print "oooooooooooooo"

defwriteToFile1():

rf= open("/Users/zwq/Desktop/shop_old.txt", "r+")

f= open("/Users/zwq/Desktop/shop.txt", "r+")

lines=f.readlines()for line inlines:

line= line.strip('\n')

rf.write(line+ '\t' + line + "old" + "\n")

rf.seek(-1, 2)if rf.read(1) == "\n":

rf.seek(-1, 2)

rf.truncate()

rf.close()defmongo2():

conn= MongoClient('115.29.204.169', 27017)

db= conn.gaea #连接mydb数据库,没有则自动创建

db.authenticate("gaea", "gaea")

my_collection= db.user #连接user集合

data = my_collection.find({"iid":1111049})for item indata:printitem#print data

if __name__ == '__main__':#sql1()

#readFromFile()#writeToFile()

#writeToFile1()

#readFromFile1()

#psycopg1()

#print ret

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值