正确使用exacutemany参考资料:https://www.jianshu.com/p/689430840600
mysql增删改查参考资料:https://blog.youkuaiyun.com/qq_40788630/article/details/82917758
mysql除了insert外的插入数据的方法参考资料:https://www.cnblogs.com/skgoo/p/10821110.html
网上好多教程都是复制黏贴一篇脚本之家的帖子…………讲的不清不楚简直LJ!附上简书和我自己的总结。
首先,sql语句的格式,以insert 为例:
众所周知,lnsert有两种写法,一种指定字段,指定值。第二种,只指定值。使用exacutemany的时候,只能使用第二种!!
切记!其次,如果你表里有暂时不用的备用字段也必须用空字符串填上,否则就会报错。
比如:
我想插入两条数据:[{'a':23,'b',56,'c':98},{'a':66,'b',16,'c':8}],其中字典的key为字段名。首先构造对应的sqlWord,正确格式如下:
sqlWord = insert into 表名 values (%s,%s,%s)
然后,要把上面的数据整理成这样的格式:
dataInfo = [(23,56,98),
(66,16,8)]
每组数据都一定要按照数据库字段的顺序排,每一个元祖代表一行数据。
然后就是
conn = pymsql.connect(xxxxxxxxxxxxxxxx)
cur.executemany(sqlWord,dataInfo)
conn.commit()
cur.close()
conn.close()