新闻详情

新闻详情

首页 / 资讯中心 / 详情

更新mysql数据python脚本

发布时间:2026/10/1 21:08:40来源:尧图网络
更新mysql数据python脚本
逐条更新数据统计成功和失败数目。脚本内容# 虚拟环境py3_8_20_patent_env # conda install -c conda-forge rdkit # pip install openpyxl # 一个接一个更新表 my_dataset 内容根据name更新 alpha_xx_aualpha_yy_aualpha_zz_aualpha_iso_au # 错误数据不会影响正常数据 import logging import time import warnings import numpy as np import pandas as pd import pymysql from pymysql.constants import CLIENT class MoleGeneDataImporter: def __init__(self): self.current_date pd.Timestamp.now().strftime(%Y%m%d%H%M) self.setup_logging() self.load_config() def setup_logging(self): 配置日志系统 logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s) warnings.filterwarnings(ignore) def load_config(self): 加载配置信息 self.mysql_config { host: localhost, user: root, password: root, database: db-1, port: 3306, client_flag: CLIENT.MULTI_STATEMENTS } self.excel_file ./data/2025-9-26/xxx.xlsx self.sheet_name 数据 def read_excel_data(self): 读取Excel文件数据 try: df pd.read_excel(self.excel_file, sheet_nameself.sheet_name) logging.info(Excel文件读取成功) return df except Exception as e: logging.error(f读取Excel文件失败: {e}) raise staticmethod def update_data_to_db(dataframe, connection): table_name my_dataset # dataframe中的nan替换为None dataframe dataframe.replace(np.nan, None) 逐条更新数据库遇到错误跳过 success_count 0 error_count 0 error_records [] try: with connection.cursor() as cursor: update_sql f UPDATE {table_name} SET alpha_xx_au %s, alpha_yy_au %s, alpha_zz_au %s, alpha_iso_au %s WHERE name %s for _, row in dataframe.iterrows(): try: # 执行单条更新 cursor.execute(update_sql, ( row[Alpha_xx_au], row[Alpha_yy_au], row[Alpha_zz_au], row[Alpha_iso_au], row[Name] )) # 每条记录成功更新后立即提交 connection.commit() success_count 1 # 每成功100条记录输出一次日志 if success_count % 100 0: logging.info(f已成功更新 {success_count} 条记录) except Exception as e: # 如果发生异常回滚当前记录实际上由于每条记录独立提交回滚操作可能没有意义因为已经提交的记录无法回滚 # connection.rollback() error_count 1 error_records.append(row[Name]) logging.warning(f更新记录 {row[Name]} 时出错: {e}) # 继续处理下一条记录 continue logging.info(f数据更新完成成功: {success_count} 条失败: {error_count} 条) if error_count 0: logging.warning(f更新失败的记录: {error_records}) except Exception as e: connection.rollback() logging.error(f数据更新过程中发生错误: {e}) raise def run(self): 主运行方法 try: # 读取和处理数据 df self.read_excel_data() logging.info(f共读取到 {len(df)} 条记录) # 连接数据库并插入数据 connection pymysql.connect(**self.mysql_config) logging.info(MySQL数据库连接成功) logging.info(数据准备完成开始逐条更新数据库...) self.update_data_to_db(df, connection) except Exception as e: logging.error(f程序运行出错: {e}) finally: if connection in locals() and connection: connection.close() logging.info(MySQL数据库连接已关闭。) if __name__ __main__: start_time time.time() importer MoleGeneDataImporter() importer.run() end_time time.time() logging.info(f逐条更新数据到mysql数据库完成程序运行耗时: {end_time - start_time} 秒)
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

基于SpringBoot+Vue的大创管理系统开发实践全解析 2026/10/1 22:58:10

基于SpringBoot+Vue的大创管理系统开发实践全解析

“大创管理系统”这名字听着挺传统,但真要做起来会发现里面藏的坑一点不比一个正经办公业务系统少。每年大学生创新创业训练计划申报,很多学院还在靠Excel来回传,学生填一次信息,学院统计一次,专家评审再手工算一次分&…

阅读更多 →
基于Matlab的热电联产机组联合优化控制:风电最大化消纳策略 2026/10/1 22:58:10

基于Matlab的热电联产机组联合优化控制:风电最大化消纳策略

每年一到供暖季,北方电网的调度台前就格外热闹。后半夜风场呼呼地满发,热网那边又必须保证供热温度,热电联产机组被“以热定电”四个字压得死死的,电出力降不下来,风电只能眼睁睁看着被弃掉。这场景我太熟了——前几年…

阅读更多 →
用 Skills 构建数学竞赛学案制作流水线:从选题到 LaTeX 排版全流程实战 2026/10/1 22:58:10

用 Skills 构建数学竞赛学案制作流水线:从选题到 LaTeX 排版全流程实战

写在前头:我做竞赛教研这行快十年,从纸笔时代一路干到AI辅助教学,最深的感受是——备课、选题、排版、校解析,这些活儿看起来不起眼,但叠在一起能把人榨干。尤其是数竞方向的学案,一道好题从选出来到最终落…

阅读更多 →
小众开源项目怎么养活人?从嵌入式到微服务的变现路径解析 2026/10/1 22:58:10

小众开源项目怎么养活人?从嵌入式到微服务的变现路径解析

有人靠开源项目吃饭,我起初是不太信的.直到自己也踩进这个圈子,见了各种“小到不行、却养活了整个团队”的项目,才明白这背后的门道有多深。尤其这两年,嵌入式开源项目、微服务架构、threejs 生态、linux 部署方案、后端脚手架………

阅读更多 →
《众生赋》创作手记:赋体文学如何写进当代生活 2026/10/1 22:58:03

《众生赋》创作手记:赋体文学如何写进当代生活

1. 从“众生”二字切进去的创作缘起《众生赋》这个标题,最初其实是从一个很朴素的问题开始的:我们每天和无数人擦肩而过,地铁上、菜市场里、写字楼电梯间,那些面孔转瞬即逝,但他们各自背后都有完整的人生。有人一生都在…

阅读更多 →
MAME与FBNeo怎么选?街机模拟器从入门到离线游戏库搭建指南 2026/10/1 22:58:03

MAME与FBNeo怎么选?街机模拟器从入门到离线游戏库搭建指南

前阵子群里好几个朋友都在问,街机模拟器到底还怎么玩?有的说小鸡模拟器越来越卡,有的说新版界面广告太多,有人说想找个干净一点的替代方案。我自己折腾街机模拟器也有七八年了,手里这批ROM和基板镜像不能说多&#xff…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉