python连接mysq,用字典的形式插入数据,避免key:value对应错乱
平时我们用python连接数据库时,使用插入语句,用inert into 表名 (字段1,字段2,字段3......)values (值1,值2,值3.........)
如果字段非常多的情况下,很容易出错,前面的key与后面的值对应不上,只要错一个,后面的可能就都错了,非常令人头疼。
所以我们可以借助字典的方式,很把key:value定义好,再通过一些手段把key、value放在values关键字的前后,就不会出错啦。
1、连接数据库
import pymysql
from random import randint
#连接数据库
db_connect = pymysql.connect("localhost","root","123456","test")
cursor = db_connect.cursor()
#用字典存放要插入的数据
table_data = {"student_id":"xh0001","name":"李一","id_card":"130133198301275082","sex":"女","age":20,"achievement":300,"adress":"北京","remark":"测试"}
for i in table_data:
table_data[i] = " ' " + str(table_data[i]) + " ' " #轮循给各valu值变成字符型,并加上单引号
key = '(' + ','.join(table_data.keys()) + ')' #用join函数将字典中的key值以逗号分隔变成一个字符串,并在前后加上括号,存在key中
value = "(" + ",".join(table_data.values()) + ")" #用join函数将字典中的value值以逗号分隔变成一个字符串,并在前后加上括号,存在value中
#定义sql语句
inseter_sql = "insert into {0} {1} values {2}".format(table_name,key,value)
self.cursor.execute(inseter_sql)
self.connection_db.commit()