datafrme不用to_sql批量插入mysql的方法

接上篇文章,优化版,一秒插入1w+数据

#批量插入并根据重复数据进行处理
class DF_MYSQL(DBBase):
    #定义操作更新时间相关的方法
    #获取上次更新的时间
    def __del__(self):
        #删除对象时关闭链接
        self.mysql_cursor.close()
        self.connect.close()

    def update(self,df,col_list):
        #update  table_name对应的更新时间
        sql = mysql_config.RP_M_RECORD_SQL
        i = 0
        n = 0
        cols = col_list
        df = df.ix[:, cols]
        list_df = df.values.tolist()
        times = len(list_df)//10000
        if len(list_df) % 10000 != 0:
            times = len(list_df)//10000 + 1        
        while n < times:
            L = list_df[i:i+10000]
            try:
                self.mysql_cursor.executemany(sql,L)
            except Exception as e:
                jylog.info(e)
                self.connect.rollback()
            else:
                self.connect.commit()
            i = i + 10000
            n = n + 1

猜你喜欢

转载自blog.csdn.net/xiaofeixia666888/article/details/82703067