栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python爬虫学习42

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python爬虫学习42

python爬虫学习42 数据存储篇——MySQL储存

目录
    • python爬虫学习42
      • 数据存储篇——MySQL储存
        • 5. 更新数据
          • 简单的SQL语句
          • 使用字典进行更新

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

则执行更新操作:

刘能被替换成了赵四:

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

今日结束,未完待续…

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/923328.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号