【工具封装】不用 for 循环, 教你如何向MySQL数据库批量插入数据

1、前言

今天教你 不用 for 循环,如何向 MySQL 数据库 批量插入数据

废话很少说,直接看步骤实现 。。。

好文章 记得收藏+点赞+关注额 !!!
python

---- Nick.Pengmysql


2、封装执行SQL方法

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

3、封装插入数据方法

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

4、案例演示

# 如下是准备插入数据库的数据(要插入表的字段个数:这里假设有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)

​​