python批量更新mysql_Python操作MySQL批量修改数据:cursor.executemany()

使用pymysql的 course.executemany(sql, update_list) 进行批量更新

sql:更新一条的sql语句模板;

update_list:一个列表套元组的结构;

示例:

db = pymysql.connect(user='root', password='mysql', database='test', host='127.0.0.1', port=3306, charset='utf8mb4')

name_list = ["re", "gh", "ds", "D"] # 存储name的值

age_list = ["10", "20", "30", "40"] # 存储age的值

id_list = ["1", "2", "3", "4"] # 存储id的值

val_list = [[name_list[i], age_list[i], id_list[i]] for i in range(len(id_list))]

print(val_list)

# [['re', '10', '1'], ['gh', '20', '2'], ['ds', '30', '3'], ['D', '40', '4']]

with db.cursor() as cursor:

try:

sql = "UPDATE test SET name=(%s), age=(%s) WHERE id=(%s)"

cursor.executemany(sql, val_list)

db.commit()

except:

db.rollback()

db.close()

相关文章

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`cursor.executemany` 方法可以用于批量插入数据数据库中,可以提高数据插入的效率。使用 DataFrame 对象和 `cursor.executemany` 方法可以将数据批量插入到数据库中。 下面是一个例子,假设我们有一个名为 `df` 的 DataFrame 对象需要插入到数据库表中: ```python import pymysql import pandas as pd # 创建 MySQL 连接 conn = pymysql.connect( host='localhost', port=3306, user='root', password='password', db='test_db', charset='utf8mb4' ) # 创建 DataFrame 对象 df = pd.DataFrame({ 'name': ['Alice', 'Bob', 'Charlie'], 'age': [24, 25, 26], 'gender': ['F', 'M', 'M'] }) # 创建游标对象 cursor = conn.cursor() # 定义 SQL 插入语句 sql = "INSERT INTO person(name, age, gender) VALUES (%s, %s, %s)" # 使用 cursor.executemany 方法批量插入数据 cursor.executemany(sql, df.values.tolist()) # 提交事务 conn.commit() # 关闭游标和连接 cursor.close() conn.close() ``` 在上面的代码中,我们首先创建了一个名为 `df` 的 DataFrame 对象,然后创建了一个 MySQL 连接和游标对象。接着,我们定义了一个 SQL 插入语句并使用 `cursor.executemany` 方法批量插入数据。最后,我们提交了事务并关闭了游标和连接。 需要注意的是,`cursor.executemany` 方法的第二个参数需要是一个嵌套列表,即每个子列表表示一条数据记录。因此,在上面的代码中,我们使用 `df.values.tolist()` 将 DataFrame 对象转换为嵌套列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值