python爬虫学习42
数据存储篇——MySQL储存
5. 更新数据
最简单的一种实现方法直接执行一个SQL语句
简单的SQL语句
import pymysql
# 更新一个姓名为刘能元组中的年龄
sql = 'update students set age = %s where name = %s'
database = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='spider1')
cursor = database.cursor()
try:
cursor.execute(sql, (59, '刘能'))
database.commit()
print('写入成功!')
except:
database.rollback()
print('有错误!')
database.close()
运行结果:
刘能的年龄已经被改成59了
使用字典:
使用字典进行更新
import pymysql
data = {
'id': '103',
'age': '15',
'name': '小刘'
}
table = 'students'
keys = ','.join(data.keys())
values = ','.join(['%s']*len(data))
# 在数据库中主键必须唯一的标识一行,这里的含义是若待插入字段的主键已经存在,则执行更新操作
sql = f'insert into {table}({keys}) values({values}) on duplicate key update '
update = ','.join([f"{item} = %s" for item in data])
sql += update
print(sql)
database = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='spider1')
cursor = database.cursor()
print(tuple(data.values())*2)
try:
cursor.execute(sql, tuple(data.values())*2)
database.commit()
print('成功!')
except:
database.rollback()
print('失败!')
database.close()
运行结果:
新插入了一行:
若将数据改成:
data = {
'id': '102',
'age': '19',
'name': '赵四'
}
则执行更新操作:
刘能被替换成了赵四:
至此,相信大家已经掌握了数据的更新操作了
今日结束,未完待续…