zoukankan      html  css  js  c++  java
  • 用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"
    ", t)
            text = re.split(r"	", 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()
  • 相关阅读:
    bzoj1477: 青蛙的约会
    数论/the second wave
    bzoj2818: Gcd
    bzoj2705: [SDOI2012]Longge的问题
    数论/the first wave
    bzoj3942: [Usaco2015 Feb]Censoring
    BZOJ 1059: [ZJOI2007]矩阵游戏( 匈牙利 )
    BZOJ 1013: [JSOI2008]球形空间产生器sphere( 高斯消元 )
    BZOJ 1823: [JSOI2010]满汉全席( 2-sat )
    BZOJ 4260: Codechef REBXOR( trie )
  • 原文地址:https://www.cnblogs.com/yanguhung/p/10145769.html
Copyright © 2011-2022 走看看