#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()
python对于Mongo数转存到Mysql的操作
最新推荐文章于 2024-07-30 14:29:27 发布