侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例

Python  /  管理员 发布于 7年前   167

本文实例讲述了Python实现读取SQLServer数据并插入到MongoDB数据库的方法。分享给大家供大家参考,具体如下:

# -*- coding: utf-8 -*-import pyodbcimport osimport csvimport pymongofrom pymongo import ASCENDING, DESCENDINGfrom pymongo import MongoClientimport 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 + 1InsertChannel_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 + 1InsertChannel_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 + 1InsertCitynumb(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 + 1InsertChannel(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 + 1InsertCPBZK(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 + 1InsertTVPGMCLASS(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 + 1InsertGGBZK_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 + 1InsertZ201607_027(cursor)#############################################################################################

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python常见数据库操作技巧汇总》、《Python编码操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。


  • 上一条:
    Python实现读取机器硬件信息的方法示例
    下一条:
    Python操作mongodb数据库进行模糊查询操作示例
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(95个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客