基于python3.0的CSV文件入MySQL

    因为工作上临时有个需求,需要将excel文件转为csv并入MySQL。于是写了一个这么一个小程序。在转csv的时候打开csv文件,好多较长的数字自动转换为了科学计数法,后来把列格式转换为文本,再次打开还是科学计数法,我相信好多人都对这个问题很头疼。不过我发现虽然打开是科学计数法但是转完csv之后用python直接读,读到的是完整的数据,数据不是科学计数法,后几位也不是0。以下是代码部分,这个代码支持所有表的数据写入,只需要在csv的第一列写上对应的库中表的字段名。
代码:

# _*_ coding:utf-8 _*_
import sys
import csv
def ExecuteSql(tablename,fieldname,list_date=[]):
    "将excel中数据写入数据库"
    db = pymysql.connect(host="150.3.3.3", port=3317,user="luwenjie8061",
                         passwd="Passw0rd_luwenjie646", db="SENSHG1")
    cursor = db.cursor()
    date = ""
    #将csv文件中的数据拼接成insertSQL中的格式
    for num in range(0,len(list_date)):
        date = date + "'" + str(list_date[num]) + "'" + ","
    date = date[0:len(date) - 1]
    sql = "insert into " + tablename + " (" + fieldname + ") " + \
          "values " + \
          " (" + \
          date.strip() + ")"
# 使用 cursor() 方法创建一个游标对象 cursor
    cursor.execute(sql)
    db.commit()        #注意:一定要提交才会写入数据库,写入数据时不会自动提交
    db.close()
def read_CSV(path):
    fieldname = ""
    readeritem.extend([row for row in csv_files])
    #拼接出insertSQL中的字段名
    for num in range(0, len(readeritem[0])):
        fieldname = fieldname + readeritem[0][num] + ","
    fieldname = fieldname[0:len(fieldname) - 1]
    #获取csv文件中每行数据,并写入数据库
    for lines in range(1, len(readeritem)):
        list_date = readeritem[lines]
        ExecuteSql(tablename,fieldname,list_date)
#参数读取,即执行该python文件时,第一个参数是要写入的表名,第二个参数是excel文件名
tablename = sys.argv[1]
file = sys.argv[2]
#file = r'C:\Users\卢文杰\Desktop\卢文杰\工作文件\TEST\各区报警点反馈信息汇总_V0.3.xlsx'
read_CSV(file)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值