Python:CSV转数据库Insert语句

Python:CSV转数据库Insert语句

#可实现字符串类型和数值型两种
内联代码片

#龙龙
#本文中的csv放在和python程序同一目录下
import pandas as pd

def colomnJudgeType(count,intColumn, columnSize):
    #已排除了用户输入的列序号超长的情况
    if max(intColumn) > columnSize:
        return 666
    if count in intColumn:
        return 1
    else:
        return 0

def save(filename, contents):
    fh = open(filename, 'w', encoding='utf-8')
    fh.write(contents)
    fh.close()

def csvToMysql(address,csvName,notStrColomn):
    #默认全部转成字符串
    notStrColomnList = notStrColomn.split('#')
    notStrColomnListInt = []

    for i in notStrColomnList:
        tempInt = int(i)
        notStrColomnListInt.append(tempInt)
    print(notStrColomnListInt)
    df = pd.read_csv(csvName+'.csv',encoding="gb2312")
    columnSize = df.columns.size
    aa = ''
    cc = ''
    count = 0
    for index, row in df.iterrows():
        bb = '('
        while (count < columnSize):
            flag = 99
            flag = colomnJudgeType(count+1, notStrColomnListInt, columnSize)
            if flag == 0:
                bb = bb +"'"+str(row[count]) +"'"+ ','
            elif flag ==1 :
                bb = bb + str(row[count]) + ','
            else:
                print('您输入的值超出范围')
                return
            count = count + 1
        count = 0
        bb = bb[:-1]
        bb = bb + "),"
        print(bb)
        aa = aa + str(bb)
        cc = aa.replace('nan','')
    address = address + csvName+'.txt'
    print(address)
    save(address, cc[:-1])

address = 'C:/Users/Administrator/Desktop'
#第一个为保存地址,默认为桌面,第二个csv名称和转成的txt名称,第三个为数值型的列(默认为全是字符型,用#分隔,第一列为1而不是0)
csvToMysql(address,'llcategorytree','5#6')
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值