加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

让你在10分钟内掌握如何用Python将数据批量的插入到数据库

发布时间:2021-05-29 01:42:44 所属栏目:大数据 来源:互联网
导读:本文基于python, 使用pandas, pymysql等三方库实现了向数据库中高效批量插入数据,一方面提供被网上很多瞎转载的答案给坑蒙了的人(因为我也是),一方面自己也做

df2 = pd.read_csv(your_file_path2, dtype={"column1": str, "column2": str}, delimiter="/t") 

# 合并 

ret_df = pd.merge(df1, df2, left_on=["column_name"], right_on=["column_name"], how="left") 

 

# 先创建cursor负责操作conn接口 

conn = mysql_conn("your db host", "your username", "your password", "db name") 

cursor = conn.cursor() 

# 开启事务 

conn.begin() 

 

# 先构造需要的或是和数据库相匹配的列 

columns = list(df.columns) 

# 可以删除不要的列或者数据库没有的列名 

columns.remove("列名") 

# 重新构造df,用上面的columns,到这里你要保证你所有列都要准备往数据库写入了 

new_df = df[columns].copy() 

 

# 构造符合sql语句的列,因为sql语句是带有逗号分隔的,(这个对应上面的sql语句的(column1, column2, column3)) 

columns = ','.join(list(new_df.columns)) 

 

# 构造每个列对应的数据,对应于上面的((value1, value2, value3)) 

data_list = [tuple(i) for i in gdsord_df.values] # 每个元组都是一条数据,根据df行数生成多少元组数据 

 

# 计算一行有多少value值需要用字符串占位 

s_count = len(data_list[0]) * "%s," 

 

# 构造sql语句 

insert_sql = "insert into " + "数据库表名" + " (" + columns + ") values (" + s_count[:-1] + ")" 

try: 

  cursor.executemany(insert_sql, data_list) 

  conn.commit() 

  cursor.close() 

  conn.close() 

except Exception as e: 

  # 万一失败了,要进行回滚操作 

  conn.rollback() 

  cursor.close() 

  conn.close() 

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读