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

#coding=utf-8
import MySQLdb
conn= 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文件中引用这个方法
这里写图片描述
插入情况
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值