圆月山庄资源网 Design By www.vgjia.com
本文实例讲述了Python实现读取SQLServer数据并插入到MongoDB数据库的方法。分享给大家供大家参考,具体如下:
# -*- coding: utf-8 -*- import pyodbc import os import csv import pymongo from pymongo import ASCENDING, DESCENDING from pymongo import MongoClient import binascii '''连接mongoDB数据库''' client = MongoClient('10.20.4.79', 27017) #client = MongoClient('10.20.66.106', 27017) db_name = 'SoftADoutput' db = client[db_name] '''连接SqlServer数据库''' connStr = 'DRIVER={SQL Server Native Client 11.0};SERVER=DESKTOP-44P34L6;DATABASE=Softput;UID=sa;PWD=sa' conn = pyodbc.connect(connStr) cursor = conn.cursor() #########################################Channel_CovCode数据插入########################## '''从SQLServer数据库读取Channel_CovCode数据写入到mongodb数据库中Channel_CovCode集合中''' def InsertChannel_CovCode(cursor): cursor.execute("select dm, ms from channel_CovCode") rows = cursor.fetchall() i = 1 for row in rows:#gb18030 db.channel_CovCode.insert({'_id':i,'dm':row.dm,'ms':row.ms.decode('gbk').encode('utf-8')}) i = i + 1 InsertChannel_CovCode(cursor) ############################################################################################# #########################################channel_ModeCode数据插入############################# '''从SQLServer数据库读取channel_ModeCode数据写入到mongodb数据库中channel_ModeCode集合中''' def InsertChannel_ModeCode(cursor): cursor.execute("select dm, ms from channel_ModeCode") rows = cursor.fetchall() i = 1 for row in rows:#gb18030 db.channel_ModeCode.insert({'_id':i,'dm':row.dm,'ms':row.ms.decode('gbk').encode('utf-8')}) i = i + 1 InsertChannel_ModeCode(cursor) ############################################################################################# #########################################citynumb数据插入######################## '''从SQLServer数据库读取citynumb数据写入到mongodb数据库中citynumb集合中''' def InsertCitynumb(cursor): cursor.execute("select t.XZQMC,t.SMC,t.CSMC,t.SSQYDM,t.CITY_E,t.AREA_E,t.PROV_E from citynumb t") rows = cursor.fetchall() i = 1 for row in rows: xzqmc = row.XZQMC if xzqmc != None: xzqmc = xzqmc.decode('gbk').encode('utf-8') smc = row.SMC if smc != None: smc = smc.decode('gbk').encode('utf-8') csmc = row.CSMC if csmc != None: csmc = csmc.decode('gbk').encode('utf-8') db.citynumb.insert({'_id':i,'XZQMC':xzqmc,'SMC':smc,'CSMC':csmc,'SSQYDM':row.SSQYDM,'CITY_E':row.CITY_E,'AREA_E':row.AREA_E,'PROV_E':row.PROV_E}) i = i + 1 InsertCitynumb(cursor) ################################################################################################################## #########################################channel数据插入############################ '''从SQLServer数据库读取channel数据写入到mongodb数据库中channel集合中''' def InsertChannel(cursor): cursor.execute("select pdcmc,pdemc,pdemcj,pdbm1,ssqydm,cov,sdate,mode,startTime,endTime,memo,pdtype,sflag,edate,corporation from channel") rows = cursor.fetchall() i = 1 for r in rows: pdcmc = r.pdcmc if pdcmc != None: pdcmc = pdcmc.decode('gbk').encode('utf-8') memo = r.memo if memo != None: memo = memo.decode('gbk').encode('utf-8') corporation = r.corporation if corporation != None: corporation = corporation.decode('gbk').encode('utf-8') db.channel.insert({'_id':i,'pdcmc':pdcmc,'pdemc':r.pdemc,'pdemcj':r.pdemcj,'pdbm1':r.pdbm1,'ssqydm':r.ssqydm,'cov':r.cov,'sdate':r.sdate,'mode':r.mode,'startTime':r.startTime,'endTime':r.endTime,'memo':memo,'pdtype':r.pdtype,'sflag':r.sflag,'edate':r.edate,'corporation':corporation}) i = i + 1 InsertChannel(cursor) ############################################################################################# #########################################CPBZK数据插入############################ '''从SQLServer数据库读取CPBZK数据写入到mongodb数据库中CPBZK集合中''' def InsertCPBZK(cursor): cursor.execute("select ZTC,EZTC,ZTC_CODE,LBDM,B_CODE,QY_CODE,IChange,cla from CPBZK") rows = cursor.fetchall() i = 1 for r in rows:#gb18030 ztc = r.ZTC if ztc != None: ztc = ztc.decode('gbk').encode('utf-8') db.CPBZK.insert({'_id':i,'ZTC':ztc,'EZTC':r.EZTC,'ZTC_CODE':r.ZTC_CODE,'LBDM':r.LBDM,'B_CODE':r.B_CODE,'QY_CODE':r.QY_CODE,'IChange':r.IChange,'cla':r.cla}) i = i + 1 InsertCPBZK(cursor) ############################################################################################# #########################################TVPGMCLASS数据插入########################## '''从SQLServer数据库读取TVPGMCLASS数据写入到mongodb数据库中TVPGMCLASS集合中''' def InsertTVPGMCLASS(cursor): cursor.execute("select ClassChDesc,ClassEnDesc,ClassCode,ParentCode,SortNo from TVPGMCLASS") rows = cursor.fetchall() i = 1 for r in rows:#gb18030 classChDesc = r.ClassChDesc if classChDesc != None: classChDesc = classChDesc.decode('gbk').encode('utf-8') db.TVPGMCLASS.insert({'_id':i,'ClassChDesc':classChDesc,'ClassEnDesc':r.ClassEnDesc,'ClassCode':r.ClassCode, 'ParentCode':r.ParentCode,'SortNo':r.SortNo}) i = i + 1 InsertTVPGMCLASS(cursor) ############################################################################################# #########################################GGBZK_DESCRIPTION数据插入########################### '''从SQLServer数据库读取GGBZK_DESCRIPTION数据写入到mongodb数据库中GGBZK_DESCRIPTION集合中''' def InsertGGBZK_DESCRIPTION(cursor): cursor.execute("select V_code,des_named,des_main,des_background,des_scene,des_words,ModifyFlag,UpdateDate from GGBZK_DESCRIPTION") rows = cursor.fetchall() i = 1 for r in rows:#gb18030 name = r.des_named if name != None: name = name.decode('gbk').encode('utf-8') desmain = r.des_main if desmain != None: desmain = desmain.decode('gbk').encode('utf-8') background = r.des_background if background != None: background = background.decode('gbk').encode('utf-8') scene = r.des_scene if scene != None: scene = scene.decode('gbk').encode('utf-8') words = r.des_words if words != None: words = words.decode('gbk').encode('utf-8') db.GGBZK_DESCRIPTION.insert({'_id':i,'V_code':r.V_code,'des_named':name,'des_main':desmain,'des_background':background, 'des_scene':scene,'des_words':words,'ModifyFlag':r.ModifyFlag,'UpdateDate':r.UpdateDate}) i = i + 1 InsertGGBZK_DESCRIPTION(cursor) #########################################Z201607_027数据插入########################## '''从SQLServer数据库读取Z201607_027数据写入到mongodb数据库中Z201607_027集合中''' def InsertZ201607_027(cursor): strSql = "select PD,RQ,SHIJIAN,ENDSHIJIAN,LBDM,ZTC_CODE,V_CODE,B_CODE,QY_CODE,QUANLITY,SPECIAL,LANGUAGE,LENGTH,SLENGTH,QJM1,QJM2,QGG,HJM1,HJM2,HGG,DUAN,OSHIJIAN,JG,SORTNO,LURU,ZFILE,COST,ROWTS,COST1,COST2,COST3 from Z201607_027" cursor.execute(strSql) rows = cursor.fetchall() i = 1 for r in rows:#gb18030 cost = float(r.COST) #COST money类型 cost1 = float(r.COST1) cost2 = float(r.COST2) cost3 = float(r.COST3) #先把时间戳转为字符串,然后再转为十进制数 rowts = int(str(binascii.b2a_hex(r.ROWTS)),16) luru = r.LURU if luru != None: luru = luru.decode('gbk').encode('utf-8') vCODE = r.V_CODE if vCODE != None: vCODE = vCODE.decode('gbk').encode('utf-8') db.Z201607_027.insert({'_id':i,'PD':r.PD,'RQ':r.RQ,'SHIJIAN':r.SHIJIAN,'ENDSHIJIAN':r.ENDSHIJIAN,'LBDM':r.LBDM, 'ZTC_CODE':r.ZTC_CODE,'V_CODE':vCODE,'B_CODE':r.B_CODE,'QY_CODE':r.QY_CODE,'QUANLITY':r.QUANLITY, 'SPECIAL':r.SPECIAL,'LANGUAGE':r.LANGUAGE,'LENGTH':r.LENGTH,'SLENGTH':r.SLENGTH,'QJM1':r.QJM1,'QJM2':r.QJM2,'QGG':r.QGG,'HJM1':r.HJM1,'HJM2':r.HJM2,'HGG':r.HGG,'DUAN':r.DUAN,'OSHIJIAN':r.OSHIJIAN,'JG':r.JG,'SORTNO':r.SORTNO,'LURU':luru,'ZFILE':r.ZFILE, 'COST':cost,'ROWTS':rowts,'ExpandProperty':'','COST1':cost1,'COST2':cost2,'COST3':cost3}) i = i + 1 InsertZ201607_027(cursor) #############################################################################################
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python常见数据库操作技巧汇总》、《Python编码操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月07日
2024年11月07日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]