Python写入数据到MySQL

首先要将PythonMySQL进行链接,能够使用pymysql或者MySQLdb两个模块进行操做。MySQLdb主要在Python2中比较经常使用,可是在Python3中使用pymysql代替了MySQLdb,因此就以pymysql为例。代码以下:mysql

# 使用pymysql进行链接:
import pymysql


def connection_sql(data):
    db = pymysql.connect(host="localhost", user="root", password="password", database="database")
    db_curs = db.cursor()
    # 单条数据的插入:
    insert_sql = """INSERT INTI form_name(field_1, field_2, field_3) VALUES (value_1, value_2, value_3);"""
    try:
        db_curs.execute(insert_sql)
        db.commit()
        print("ok")
    except:
        db.rollback()
        print("insert error")
    db.close()
    # 这是分割线
    ----------------------------------------------------------------------------------------
    # 多条数据的插入:
    insert_sql = """INSERT INTI form_name(field_1, field_2, field_3) VALUES (%s, %s, %s);"""
    data = data # 此处可能有点问题,具体须要看数据格式。
    print(data)
    """若是data是经过生成器yield生成,则不须要对数据进行遍历。"""
    try:
        db_curs.executemany(insert_sql, data)
        db.commit()
        print("ok")
    except:
        db.rollback()
        print("insert error")
    db.close()
复制代码

这是能够成功执行的,可是目前我并无对语句进行优化操做,应该能够不用每一遍操做都遍历一遍insert_sql,只对须要写入的数据进行遍历便可。
须要提早将数据处理成能够插入到MySQL的格式:能够在代码中输出data,看看其数据格式。
多条数据的写入,data的数据格式须要为[[column_name1, column_name2, column_name3], [column_name1, column_name2, column_name3], [column_name1, column_name2, column_name3]]。当数据量较多的时候,列表会占用很大的系统资源,能够使用循环或者生成器的方法来减小资源的占用。sql

相关文章
相关标签/搜索