python 字典入库(mysql)函数

def InsertData(TableName,dic):
    try:
        conn=MySQLdb.Connect(host='localhost',user='po',passwd='password',db='test',charset = 'utf8',port = 3306) 
        cur=conn.cursor()
        COLstr=''   #列的字段
        ROWstr=''  #行字段
  
        ColumnStyle='VARCHAR(255)'
        for key in dic.keys():
            COLstr=COLstr+' '+key+' '+ColumnStyle+','    
            ROWstr=(ROWstr+'"%s"'+',')%(dic[key])
        
        
        #判断表是否存在,存在执行try,不存在执行except新建表,再insert
        try:
            cur.execute("create table %s  (%s)"%(TableName,COLstr[:-1]))
            #print "create table %s  (%s)"%(TableName,COLstr[:-1])
                        
        
            vsql = "insert into %s  values(%s)"%(TableName,ROWstr[:-1])
            vsql=vsql.encode('utf-8')#执行前重新编码
            cur.execute(vsql)
            #print vsql
           
        except MySQLdb.Error,e:
           
          
            cur.execute("SELECT * FROM  %s"%(TableName))
            #print "SELECT * FROM  %s"%(TableName)
          
            vsql = "insert into %s  values(%s)"%(TableName,ROWstr[:-1])
            vsql=vsql.encode('utf-8')#执行前重新编码
            cur.execute(vsql)
            #print vsql
      
           
     
        
        #cur.scroll(0,mode='absolute')
        #获取所有结果
        conn.commit()
        
        
     


    except MySQLdb.Error,e:
        print "Mysql Error %d: %s" % (e.args[0], e.args[1])       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值