python从mysql 数据库1迁移到数据库2(中间转化为dataframe),分批次写入

python从mysql 数据库1迁移到数据库2(中间转化为dataframe),分批次写入 obj:从mysql 数据库1迁移到mysql 数据库2(中间转化为dataframe) mysql 写入数据存在两种形式,create_engine速度快些 ,但批量数据时需要分批次写入数据某则报错

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
obj:从mysql 数据库1迁移到mysql 数据库2(中间转化为dataframe)
mysql 写入数据存在两种形式,create_engine速度快些 ,但批量数据时需要分批次写入数据某则报错

"""
import csv
import pymysql
import pandas as pd
from sqlalchemy import create_engine
#连接数据库
conn=pymysql.connect(
             host='127.0.0.1',
             port=3306,
             user='root',
             passwd='xxxxx',
             db='kmind',
             charset='utf8'
         )
sqldb="select * from  form_mongodb_sql_jd_list_final_mid_02"
pd_data=pd.read_sql(sqldb,conn)
#ser-sql
conn.close()
engine = create_engine('mysql+mysqlconnector://root:xxxxx@192.168.1.xxxx:3306/数据库',echo=False)

#数据分批次写入
a_int=len(pd_data)//100
b_remainder=len(pd_data)%100
for i  in range(a_int):
    # print(pd_data[i:i+1])
    print('{}---{}'.format(i*100,(i+1)*100))
    pd.io.sql.to_sql(pd_data[i*100:(i+1)*100],'pd_data2', engine,  if_exists='append')
print('{}---{}'.format((i+1)*100,(i+1)*100+b_remainder))
pd.io.sql.to_sql(pd_data[(i+1)*100:(i+1)*100+b_remainder],'pd_data2', engine,  if_exists='append')

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区