mongodb 转存到mysql_使用pandas模块把redis或mongodb中的数据转存到mysql中的方法

连接mysql

"""

需要下载 sqlalchemy

pip install sqlalchemy -i https://pypi.douban.com/simple/

"""

from sqlalchemy import create_engine

# 初始化数据库连接,使用pymysql模块

# MySQL的用户:admin, 密码:******, 端口:3306,数据库:test

engine = create_engine('mysql+pymysql://admin:******@192.168.12.**:3306/test')

# read_sql_query的两个参数: sql语句, 数据库连接

sq = pd.read_sql_query('select * from kanyun_logs', engine)

print(sq)

# 新建一个pandas的DataFrame,储存为MySQL的数据表, 不存index列

dt = pd.DataFrame({'id': [1, 2, 3, 4], 'name': ['aa', 'bb', 'cc', 'dd']})

# dt.to_sql('mydf', engine, index=False)

pandas 连接mongodb数据库

import pymongo

cli = pymongo.MongoClient(host='192.168.12.***', port=27017)

# 连接数据库并执行用户认证

db = cli.work

db.authenticate('lagou', '111111')

# 获取表

table = db.wuhan

info = table.find({}, {'_id': 0})

lie = []

for i in info:

lie.append(i)

# 把查出来的数据,转换成DataFrame对象储存到MySQL数据库中

mys = pd.DataFrame(lie)

mys.to_sql('test', engine, index=True)

to_sql()

to_sql参数说明:

(数据,表名,con=连接键,schema='数据库名',if_exists='操作方式')    操作方式有append、fail、replace

append:如果表存在,则将数据添加到这个表的后面

fail:如果表存在就不操作

replace:如果存在表,删了,重建

index: 默认为True,表示把index的索引号添加进去,如果不需要则需要更改为False

因此上面的插入语句可以更改为

mys.to_sql('test', engine, index=True, if_exists='append')

实现再test表中追加写入数据

通过pandas的DataFrame操作实现从mongondb或redis数据库章查询出来的数据进行互相存储

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值