python爬虫学习42

这篇博客介绍了Python爬虫中如何使用MySQL储存数据,特别是数据的更新操作。通过简单的SQL语句和使用字典的方式,展示了如何修改数据库中的记录,包括刘能的年龄更新以及用新数据替换原有记录的实例。
摘要由CSDN通过智能技术生成

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': '赵四'
}

则执行更新操作:

在这里插入图片描述

刘能被替换成了赵四:

在这里插入图片描述

至此,相信大家已经掌握了数据的更新操作了

今日结束,未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值