今天教你 不用 for 循环,如何向 MySQL 数据库 批量插入数据;
废话很少说,直接看步骤实现 。。。
好文章 记得收藏+点赞+关注额 !!!python---- Nick.Pengmysql
import json from pymysql import * def exec_sql(db_name, sql): """ 封装sql执行方法 :param db_name: 操做的数据库名字 :param sql: 要执行的sql语句 :return: """ conn = connect(host="127.0.0.1", port=3306, user="root", password="root", database=db_name) conn.autocommit(1) cs = conn.cursor() count = cs.execute(sql) conn.commit() cs.close() conn.close()
import re def save_analysis_data(count, *analysis_data): """ 拼接SQL并插入分析数据 :param count: 当前表字段的个数 :param analysis_data: 要插入的分析数据 :return: """ space = re.sub('}{', '},{', '{}' * count) # 自动拼接 批量数据插入 SQL语句 sql = f"""INSERT INTO table_name (字段1, 字段2, 字段3, 字段4, 字段5, 字段6) VALUES {space}""".format(*analysis_data) print("SQL语句:", sql) # 执行SQL插入操做 app_db.exec_sql(db_name, sql) # SQL拼接示例: """ INSERT INTO table_name ( 字段 1, 字段 2, 字段 3, 字段 4, 字段 5, 字段 6 ) VALUES ( 字段 1, 字段 2, 字段 3, 字段 4, 字段 5, 字段 6 ), ( 字段 1, 字段 2, 字段 3, 字段 4, 字段 5, 字段 6 ), ( 字段 1, 字段 2, 字段 3, 字段 4, 字段 5, 字段 6 ), ( 字段 1, 字段 2, 字段 3, 字段 4, 字段 5, 字段 6 ) """
# 如下是准备插入数据库的数据(要插入表的字段个数:这里假设有6个) list1 = ['元素1', '元素2', '元素2', '元素3', '元素4', '元素5', '元素6', '元素7'......] # 字段1 的列表 list2 = ['元素1', '元素2', '元素2', '元素3', '元素4', '元素5', '元素6', '元素7'......] # 字段2 的列表 list3 = ['元素1', '元素2', '元素2', '元素3', '元素4', '元素5', '元素6', '元素7'......] # 字段3 的列表 list4 = ['元素1', '元素2', '元素2', '元素3', '元素4', '元素5', '元素6', '元素7'......] # 字段4 的列表 list5 = ['元素1', '元素2', '元素2', '元素3', '元素4', '元素5', '元素6', '元素7'......] # 字段5 的列表 list6 = ['元素1', '元素2', '元素2', '元素3', '元素4', '元素5', '元素6', '元素7'......] # 字段6 的列表 list6 = json.dumps(list6, ensure_ascii=False) # 若是某个字段为JSON类型,须要提早转换 # 将数据集中打包成一个元组列表 analysis_data = zip(list1, list2, list3, list4, list5, list6) # 调用插入数据方法 save_analysis_data(len(list1), *analysis_data)