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()

原文地址:https://www.cnblogs.com/banxiade/p/12559554.html