python对于Mongo数转存到Mysql的操作

#coding=utf-8
#!/usr/bin/python 
from pymongo import MongoClient
import pymysql
import random
#连接mysql数据库  后面加上 charset="utf8" 这样方便传输汉字,解决字符集不匹配的问题
client1 = pymysql.connect("222.27.227.131","root","Data-Node-MySQL","weibo",charset="utf8")
#产生一个mysql数据库的游标,为了写入数据
cursor = client1.cursor()
#连接Momgo数据库
client = MongoClient('222.27.227.105',27017)
#连接相应的collection
db = client.UserInfo.UserInfo_No_Illegal_Data
#设置一个变量j,便于计算插入了多少条数据
j = 0
#遍历mongo数据库,加入batch_size(30)方法解决解决 MongoDB 的 cursor id is not valid at server 问题
for i in db.find().batch_size(30):
    #如果性别是男,utf8的格式为[u'\u7537'],设置性别为1代表男
    if(i["gender"] == [u'\u7537']):
        sex = 1
    else:
        sex = 0
    j = j+1
    #由于nickName在mongo中存的为数组的形式是所以i["nickName"][0]代表的是nickName(string类型)
    try:
        nickName = i["nickName"][0]
    #因为有些数组的类型不标准,所以把整个数组传给nickName
    except:
        nickName = i["nickName"]
    try:
        signature = i["signature"][0]

    except:
        signature = ''
    #向weibo_user插入相应的数据
    sql = "INSERT INTO weibo_user(user_uid,user_fans,user_name,user_sex,user_signature) VALUES (%s,%s,%s,%s,%s)"
    par = (i["uid"],i["fansNum"],nickName,sex,signature)
    try:

       cursor.execute(sql,par)
       client1.commit()
       print nickName

    except Exception,e:
        client1.rollback()
        print e
    print "这是第",j,"条数据"
cursor.close()
client.close()
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值