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

相關文章
相關標籤/搜索