Python开发(二)封装批量插入

来源:互联网 发布:婚礼发布网站源码java 编辑:程序博客网 时间:2024/06/02 04:32
#coding=utf-8import MySQLdbconn= MySQLdb.connect(        host='localhost',        port = 3306,        user='root',        passwd='xuteng',        db ='test',        )cur = conn.cursor()#jsonArray:传入的json数组,每个字段名后面跟值,不一定要填全。例:# jsonArray = [{'sid':'1', 'sname':'xuteng','gender':'hello','birthday':'1995-08-31','address':'hubei'},#              {'sid':'2', 'sname':'xuteng','birthday':'1995-08-31','address':'hubei'},#              {'sid':'3', 'sname':'xuteng','gender':'hello','birthday':'1995-08-31'}]def insertMap(jsonArray,tableName):        for json in jsonArray:#遍历每一个子json 下面是为每一个json拼接sql 并执行                preSql = "insert into "+tableName+" ("  #前一段拼接字段                subSql ="values("                       #后一段拼接字段                exc = ()   #作为execute的参数值,这是一个tuble类型                for x in json:# 取出每一个子json的key和value值                    preSql += x + "," #拼接前面sql的key值                    subSql += "%s,"   #拼接后面sql的value数量                    exc = exc + (json[x],)#每次 给exc添加新的值tuble,注意后面的“,”号不能少,否则不能识别为一个tuble                preSql = preSql[0:preSql.__len__()-1] + ")"#去掉后面的“,”再添加“)”                subSql = subSql[0:subSql.__len__()-1] + ")"#去掉后面的“,”再添加“)”                sql = preSql+subSql  #前后相加成一个完整的sql                print sql                print exc                cur.execute(sql,exc) #将拼接好的sql和exc作为传入参数 执行        cur.close()        conn.commit()        conn.close()

当传入的是:jsonArray = [{‘sid’:’1’, ‘sname’:’xuteng’,’gender’:’hello’,’birthday’:’1995-08-31’,’address’:’hubei’}]
那么拼接的sql:insert into students (gender,sname,address,birthday,sid)values(%s,%s,%s,%s,%s)
拼接的exc:(‘hello’, ‘xuteng’, ‘hubei’, ‘1995-08-31’, ‘1’)
如果成功那么数据库将会插入这一条数据
在新py文件中引用这个方法
这里写图片描述
插入情况
这里写图片描述

原创粉丝点击