使用Python将csv文件批量写入到MySQL数据库

1 篇文章 0 订阅
1 篇文章 0 订阅
因为需要,插入一些数据到数据库,就写了一个简单的批量插入
  • 这里使用的是mysqldb框架
  • 安装的话使用:pip install MySQLdb
## 数据库批量添加

import MySQLdb as mdb
from datetime import datetime
import time
     
con = None
# 使用txt文件,注意文本格式以','隔开
fname = './loc.txt'
# 使用csv文件
#fname = './loc.csv'

# 打开文件遍历每一行并分割成一个数组依次存入s当中
with open(fname, 'r+', encoding='utf-8') as f:
    # 因为csv也是','隔开的文本文件,同样适用','分割
    # 使用strip()去除空格和换行符,并写入到s中
    s = [i.strip().split(',') for i in f.readlines()]

print(s)
try:
    # 连接数据库,设置编码为utf8,不然存入中文乱码
    # ip,user,password,databasename,charset='utf8'
    con = mdb.connect('127.0.0.1','roger_banner','1234qwer','roger_banner',charset='utf8')
    with con:
        # 创建连接
        cur = con.cursor()
        # 遍历s 获取每一行的数据
        for item in s:
            # 遍历item 获取每个元素的值
            for t in item:
                # 当前时间转换为时间戳
                now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
                #转为数组
                now = time.strptime(now, "%Y-%m-%d %H:%M:%S")
                #转为时间戳
                now = int(time.mktime(now))
                # sql语句,插入到advertising_ban表中,这里时间存的时间戳
                sql = "INSERT INTO advertising_ban(content, time) VALUES ('{}','{}')"
                # 格式化语句,将值传入进去
                sql = sql.format(t, now)
                print(sql)
                # 执行sql语句
                cur.execute(sql)
                # 提交,必须提交commit才会生效,写入数据库中
                con.commit()

finally:
    if con:
        # 关闭连接
        con.close()
  • 使用txt文件,注意文本格式每行以’,'隔开
    fname = './loc.txt'

  • 使用csv文件
    fname = './loc.csv'

  • 文件格式
    在这里插入图片描述

  • 执行结果
    在这里插入图片描述

  • 在同级目录下创建一个loc.txt文件,将数据放入文件中,使用‘,’隔开就行,可以分行。
    这个比较简单,只是插入两个字段,其他多字段的,在上面改进就行,如果需要插入多字段,
    可以一行写上一条数据的所有字段的值,遍历的时候只需遍历s就行,取值就通过item下标,比如item[1]就可以了,然后放入插入语句,执行就能存到数据库中了。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值