python读取sqlserver的数据_Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例...

本文实例讲述了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,'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,V_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,'V_CODE':vCODE,'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程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技校计算机英语,技校计算机英语的一体化教学

1计算机英语教学现状尽管中国已经成为世界上最大的计算机生产国,但计算机毕竟诞生在国外,其技术原理,硬件的构造与设置,软件的开发与运用均建立在英语的基础之上,因此计算机专业的学生必须具备一定的英语水平。然而&am…

什么意思中文翻译_os常见意思介绍

os是一个英文的缩写在不同环境状态下表达的意思不一样的,比如在计算机中就是操作系统的意思,在聊天情景的时候就是内心独白的意思,下面来看看详细的os是什么意思介绍吧。os是什么意思一、计算机中的解释OS其实就是Operating System的缩写中文…

如何用计算机算矩阵,【活用工具】教你如何用卡西欧fx82es计算机计算复数 矩阵...

虽然是从别人那里转过来的。。但根据我的经验看下来,原文有点表达不清和小错误。现在我已经改成目前比较准确,易懂和便捷的方法。如果没有特别注明,以下方法都经过本人亲自调试,绝对可行!!希望对大家有用&a…

网页证书添加_二、Exchange2016部署及基础配置(NDS及证书配置)

1、DNS轮询负载说明:使用DNS轮询实现负载均衡,最大的优点就是部署简单,基本上不需要成本,如果一台exchange服务器彻底宕机,http客户端(Outlook)足够智能,可以连接到另一台服务器。但DNS轮询并不是真正对流量…

python升级包命令_用pip升级所有包怎么操作

pip 当前内建命令并不支持升级所有已安装的Python模块。列出当前安装的包:pip list列出可升级的包:pip list --outdate升级一个包:pip install --upgrade requests // mac,linux,unix 在命令前加 sudo -H升级所有可升级的包:pip f…

计算机网络工程应用,全面信息化管理在计算机网络工程的应用

摘要:计算机网络是二十一世纪极为重要的一个发展标志,计算机信息技术措施逐渐在我国社会各个行业中得到应用。现阶段信息技术措施已经演变为我国社会经济发展进程向前推进的过程中需要使用到的极为重要的构成成分。各个行业中的相关企业也在对计算机网络…

h5 rtmp推荐控件_H5浏览器播放RTMP直播流

Insert title hereid"my-player"class"video-js"controlspreload"auto"poster"//vjs.zencdn.net/v/oceans.png"data-setup‘{}‘>var player videojs(‘my-player‘);var options {};var player videojs(‘my-player‘, options…

html 按钮光束,图文详解,原来3dmax光束特效的制作这么简单!

酷炫的光束特效是许多想要制作3dmax游戏特效的人必备的基础,实际上,虽然看起来复杂,但只要能够灵活运用粒子系统,就可以成功完成3dmax光束特效的制作。来和模型云一起看看制作教程吧!3dmax光束特效怎么制作?步骤一、打…

ubuntu中显示本机的gpu_Ubuntu下如何查看GPU版本和使用信息

【转载】nvidia-smi是用来查看GPU版本信息,GPU使用信息查询:nvidia-smi第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的…

css html 字竖,CSS实现文字竖排 DIV CSS文字垂直竖列排版显示如何实现?

DIV CSS实现文字竖排排版显示兼容各大浏览器,让文字垂直竖列排版布局。有时我们需要一段文字进行从上到下竖列排版,我们知道CSS样式中有一样式可以让其竖列排版,但所有浏览器不全兼容,逼不得已放弃。但DIVCSS5有2中方法对文字字体…

计算机专业410分能上哪些大学,2021年高考410分能报什么学校

2021年高考410分能报什么学校2021-06-12 19:09:06文/张敏高考结束后,填写志愿是广大考生和家长朋友们十分关心的问题,选择学校非常重要,这关乎着考生们的未来。对此,小编整理了高考成绩410分左右可以报考的学校,希望对…

域名带后缀_[Python 爬虫]获取顶级域名及对应的 WHOIS Server 及 whoisservers.txt 下载...

使用 Python 爬虫获取顶级域名及对应的 WHOIS Server 并保存可用于 WhoisCL.exe 的文件 whois-servers.txt。环境:Windows 10Python 3.9.1顶级域名列表https://www.iana.org/domains/root/db获取顶级域名的 WHOIS Server点击带查询的顶级域名,往下拉 WHO…

湖北经济学院的计算机怎么样,湖北经济学院怎么样名气高吗?真实排名及实力如何?是一本吗...

湖北是我国重要的科教基地,说到湖北省的重点高校,就不得不提到武汉大学和华中科技大学,这两所大学一直以来都是全国考生梦寐以求的好大学。当然除了这两所重点大学,还有很多不错的大学,例如武汉理工学院以及华中师范学…

android 三个点按钮实现_Android 常用侧滑栏实现

我们在平常使用手机时可以看到很多的App的会有侧滑菜单栏的效果,这次我将使用SlidingPaneLayout来实现这个功能。首先我们先看下最终效果:SlidingPaneLayoutSlidingPaneLayout提供了一个水平的、多窗格的布局。使用该控件我们可以实现侧滑的效果&#xf…

建筑与计算机技术,建筑设计中常用的计算机技术与注意点

《建筑设计中常用的计算机技术与注意点》由会员分享,可在线阅读,更多相关《建筑设计中常用的计算机技术与注意点(3页珍藏版)》请在装配图网上搜索。1、建筑设计中常用的计算机技术与注意点引言:目前我国的经济正在不断的发展,同时…

mysql 插入优化_MySQL批量SQL插入性能优化

对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。经过对MySQL Inno…

mysql 分页 order_Mysql查询使用limit分页,同时使用order by可能产生的问题

昨天遇到一个比较诡异的问题,在使用MySQL分页查询数据的时候,有的数据明明数据库里有,但是就是查不出来,有的数据却反而会重复出现。这里面就涉及到一个MySQL自身的问题。具体现象大概是:当使用order by 的字段有多个相…

中国上海量子计算机,首台光量子计算机在上海亮相

世界首台超越早期经典计算机的光量子计算机5月3日在上海亮相,十个超导量子比特纠缠首次成功实现,中国科学家再次站在创新的前沿。芯片越来越小,传统计算机未来必将遭遇计算极限。求解一个亿亿亿变量(10的24次方)的方程组,利用目前…

mysql 前索引_MySQL查询性能优化前,必须先掌握MySQL索引理论

数据库索引在平时的工作是必备的,怎么建好索引,怎么使用索引,可以提高数据的查询效率。而且在面试过程,数据库的索引也是必问的知识点,比如:索引底层结构选型,那为什么选择B树?不同存储引擎的索…

计算机巧用剪纸做画册教案,3 巧折巧剪教案公开课一等奖

巧折巧剪一、教学目标1.感受剪纸艺术的美,进一步了解剪纸的艺术特点,学习巧用折剪法进行剪纸创作。2.通过折与剪的方式,用对称剪纸的方法,设计制作一张好看的剪纸作品。3.感受剪纸的趣味和美感,激发对剪纸艺术的热爱。…