首先要将Python
和MySQL
进行链接,能够使用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