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()
要在Python操作MongoDB进行插入操作,你可以使用pymongo库。首先,你需要连接到MongoDB据库。你可以使用MongoClient类来实现连接。你可以传入主机和端口参,或者直接传入一个连接字符串。例如,使用以下代码连接到本地主机的默认端口27017的MongoDB据库: ```python from pymongo import MongoClient client = MongoClient('mongodb://localhost:27017/') ``` 接下来,你需要选择要插入据的据库和集合。你可以使用下面的代码选择名为"runoobdb"的据库和名为"sites"的集合: ```python mydb = client\["runoobdb"\] mycol = mydb\["sites"\] ``` 然后,你可以使用insert_one()或insert_many()方法将据插入到集合中。insert_one()方法用于插入单个文档,而insert_many()方法用于插入多个文档。例如,使用以下代码将一个文档插入到集合中: ```python data = {"name": "example", "url": "http://www.example.com"} mycol.insert_one(data) ``` 这将在集合中插入一个名为"example"的文档。 总结起来,要在Python操作MongoDB进行插入操作,你需要连接到MongoDB据库,选择要插入据的据库和集合,然后使用insert_one()或insert_many()方法将据插入到集合中。 #### 引用[.reference_title] - *1* [python操作mongo](https://blog.csdn.net/xiaoyi52/article/details/90203527)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [python 操作mongo](https://blog.csdn.net/qq_43233737/article/details/123745790)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值