|
|
发表于 2019-7-18 11:37:52
|
显示全部楼层
基础版本
- import pymysql
-
- id = '20120001'
- user = 'Bob'
- age = 20
-
- db = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='spiders')
- cursor = db.cursor()
- sql = 'INSERT INTO students(id, name, age) values(%s, %s, %s)'
- try:
- cursor.execute(sql, (id, user, age))
- db.commit()
- except:
- db.rollback()
- db.close()
复制代码
进阶动态插入版本
- data = {
- 'id': '20120001',
- 'name': 'Bob',
- 'age': 20
- }
- table = 'students'
- keys = ', '.join(data.keys())
- values = ', '.join(['%s'] * len(data))
- sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
- try:
- if cursor.execute(sql, tuple(data.values())):
- print('Successful')
- db.commit()
- except:
- print('Failed')
- db.rollback()
- db.close()
复制代码
高级动态插入&更新重复版本
- data = {
- 'id': '20120001',
- 'name': 'Bob',
- 'age': 21
- }
-
- table = 'students'
- keys = ', '.join(data.keys())
- values = ', '.join(['%s'] * len(data))
-
- sql = 'INSERT INTO {table}({keys}) VALUES ({values}) ON DUPLICATE KEY UPDATE'.format(table=table, keys=keys, values=values)
- update = ','.join([" {key} = %s".format(key=key) for key in data])
- sql += update
- try:
- if cursor.execute(sql, tuple(data.values())*2):
- print('Successful')
- db.commit()
- except:
- print('Failed')
- db.rollback()
- db.close()
复制代码
数据来源:静觅 崔庆才的个人博客 python3网络爬虫开发实战 5.2.1-mysql存储
|
|