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')