美文网首页
python将已生成的表写入到Mysql库中

python将已生成的表写入到Mysql库中

作者: 丙吉 | 来源:发表于2022-07-08 13:58 被阅读0次

问题:将经过处理后的结果数据存入到mysql库中,表已生成或未生成;

解决方法:

1. 将整个表直接保存,这种方式更快些。
from sqlalchemy import create_engine
# 将数据写入mysql库中
    engine = create_engine('mysql+pymysql://user:password@127.0.0.1:3306/mysql')
    pd.io.sql.to_sql(my_dataframe,'mysql_table', engine, schema='databases', if_exists='append',index=None)

注最之前用的如下语句,会报错,表已存在,首次建立并一次性导入数据的话,可以用如下命令:

engine = create_engine('mysql+pymysql://user:password@127.0.0.1:3306/mysql')
my_dataframe.to_sql('mysql_table', engine, chunksize=100000, index=None)
2. 直接读df的数据,然后一行行写入
import pymysql
 
# 数据库连接信息
conn = pymysql.connect(
       host='127.0.0.1',
       user='root',
       passwd='root',
       db='mysql', 
       port = 3306,
       charset="utf8")
 
# 分块处理
big_size = 100000
# 分块遍历写入到 mysql    
with pd.read_csv('./data.csv',chunksize=big_size) as reader:
 
    for df in reader:
 
        datas = []
        print('处理:',len(df))
#         print(df)
        for i ,j in df.iterrows():
            data = (j['id'],j['lon'],j['lat'])
            datas.append(data)
        _values = ",".join(['%s', ] * 5)
        sql = """insert into users(id,lon, lat) values(%s)""" % _values
        cursor = conn.cursor()
        cursor.executemany(sql,datas)
        conn.commit()
 # 关闭服务      
conn.close()
cursor.close()
print('存入成功!')

相关文章

网友评论

      本文标题:python将已生成的表写入到Mysql库中

      本文链接:https://www.haomeiwen.com/subject/fgtvbrtx.html