用python批量向數據庫(MySQL)中導入數據


用python批量向數據庫(MySQL)中導入數據

  • 現有數十萬條數據,如下的經過打亂處理過的數據進行導入

  • 數據庫內部的表格的數據格式如下與下面的表格結構相同
Current database: python_test_1

+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20) | YES  |     | NULL    |                |
| maile | varchar(50) | YES  |     | NULL    |                |
| wchat | varchar(50) | YES  |     | NULL    |                |
| phone | varchar(50) | YES  |     | NULL    |                |
| brith | varchar(50) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
6 rows in set (0.18 sec)

實現方法

import re
from pymysql import connect

#  建立鏈接
conn = connect(host='localhost', port=3306, db='python_test_1', user='root', password='mysql', charset='utf8')
# 獲取游標
cur = conn.cursor()
# 打開文件,讀取所有文件存成列表
with open("/home/python/Desktop/code/data01.txt", "r") as file:
    # 可以選擇readline或者read的方式,但下面的代碼要有所變化
    data_list = file.readlines()
    # 遍歷列表
    for t in data_list:
        
        # 正則方式匹配處理字符串
        text_list = re.split(r"\n", t)
        text = re.split(r"\t", text_list[0])
        # print(text)
        # sql語句
        sql = "insert into test_db values (0,%s,%s,%s,%s,%s)"
        print(sql)
        # 參數化方式傳參
        row_count = cur.execute(sql,[text[0],text[1],text[2],text[3],text[4]])
        # 顯示操作結果
        print("SQL語句影響的行數為%d" % row_count)
# 統一提交
conn.commit()
# 關閉游標 
cur.close()
# 關閉連接
conn.close()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM