首先要將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