SQLServer数据库之python 读取SQLServer数据插入到MongoDB数据库中
小标 2018-10-19 来源 : 阅读 1998 评论 0

摘要:本文主要向大家介绍了SQLServer数据库之python 读取SQLServer数据插入到MongoDB数据库中,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

本文主要向大家介绍了SQLServer数据库之python 读取SQLServer数据插入到MongoDB数据库中,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

# -*- 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)
#############################################################################################

本文由职坐标整理并发布,希望对同学们学习SQL Server有所帮助,更多内容请关注职坐标数据库SQL Server数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved