python应用-excel和数据库的读取及写入操作
近日完成一个交办任务,从excel表读取数据,根据ID在数据库表匹配相应的记录,并回填至excel表里。我使用的工具是python。下面记录下相应的模块。
一、从excel表读取数据
import pandas as pd
import numpy as npdef read_excel():path = "导出模板.xlsx"sheetname = "Sheet1"df = pd.read_excel(path, sheet_name=sheetname,index_col=None, na_values=['NA']))columns = df.columns #读取标题rows = df.values #读取数据集 列表listrows = np.array(rows) #需要切片,转换np.array# print(rows[:, 0]) #切片列return rows
二、据ID在数据库表匹配相应的记录
# coding:utf-8
import pandas as pd
import pymysqlclass order:def __init__(self):self.cn = pymysql.connect(host='XX.XX.XX.XX',user='root',password='123456',database='database')#使用read_sql函数来读取数据,也可以有其他写法,只是这种更简洁def findById(self, sql):df = pd.read_sql(sql, con=self.cn)return df.values.tolist()#这种写法也可以,只是不够简洁def update_sql(self, rows):sql = "update table set c_iserr=%s where c_id=%s"cur = self.cn.cursor()cur.executemany(sql, rows)self.cn.commit()self.cn.close()# df是DataFrame格式 ,table_name是写入的目标表名'''name 指定的是目标数据库表con 与数据库链接的方式,推荐使用sqlalchemy的engine类型if_exists 当数据库中已经存在数据表时对数据表的操作,有replace替换、append追加,fail则当表存在时提示ValueErrorindex 对DataFrame的index索引的处理,=True时索引也将作为数据写入数据表chunsize 整数,一次写入数据时的数据行数量'''def write_sql(self, df, table_name):df.to_sql(name=table_name, con=self.cn,if_exists='append', index=False, chunksize=1000)
其中由于调用接口,还需要使用request模块
import requests
import datatime
import jsondef getInterface(url):riqi = datetime.datetime.now().strftime("%Y/%m")text = requests.get(url).text#若返回的是字符串,还需json.loads转为dict格式。return json.loads(text)# 数据demo如下
# {"message": "OK", "success": true, "data": [{}]}
三、回填至excel表里
以上新建class类,就可以在接下来的函数调用它。
if __name__ == '__main__':sql = "select * from table where id='%s'"db = order()#此处rows是第一点返回的列表listfor row in rows:result = db.findById(sql % (row[0]))#需要切片,转换np.arrayresult = np.array(result)#todo 逻辑写入......#再一次将rows转换为dataframedf = pd.DataFrame(rows, columns=columns)# print(df.head())pd.DataFrame(df).to_excel(path, sheet_name=sheetname, index=False)
总结,一个小任务,涉及到np.array的切片,panda操作sql和excel,dataframe和list之间转换,datatime和字符串之间转换,json和字符串之间的转换等知识。
感慨python的基础知识需要扎实才行。
相关文章:
python应用-excel和数据库的读取及写入操作
近日完成一个交办任务,从excel表读取数据,根据ID在数据库表匹配相应的记录,并回填至excel表里。我使用的工具是python。下面记录下相应的模块。 一、从excel表读取数据 import pandas as pd import numpy as npdef read_excel():path &quo…...
MySQL Optimization Learning(一)
目录 一、MySQL性能监控 1、show profile 2、performance schema 2.1、MYSQL performance schema详解 3、show processlist 一、MySQL性能监控 MySQL官网 拖到首页最下方找到 MySQL Reference Manual ->cmd命令行 C:\Users\Administrator>mysql -uroot -proot …...
Flink消费kafka出现空指针异常
文章目录 出现场景:表现:问题:解决: tombstone : Kafka中提供了一个墓碑消息(tombstone)的概念,如果一条消息的key不为null,但是其value为null,那么此消息就是墓碑消息. …...
【探索 Kubernetes|作业管理篇 系列 9】Pod 的服务对象
前言 大家好,我是秋意零。 在上一篇中,我们介绍了 Pod 的生命周期以及区分 Pod 字段的层次级别,相信你对此有了充分的认识。 今天,我们还会接着以 Pod 展开,说说它的 “服务对象”,一听就知道是对 Pod 提…...
多种拖拽= =自用留档
<template> <div class"main-drag"> <div v-if"stencil 0" class"mapped-fields"> <el-form ref"mapped" :model"mapped" class"demo-fieldsForm"> <el-form-item label"切换数…...
贝叶斯与认知——读《贝叶斯的博弈》有感
关于对贝叶斯与认知问题的相关思考 一、贝叶斯定理二、贝叶斯与认知的本质三、经验的偏见四、总结 自古以来,人们就在思考知识来自何处,“冯翼惟象,何以识之?”,对此的思考逐渐发展成哲学的认识论分支。德国哲学家康德…...
MySQL安装失败starting the sever
MySQL安装失败starting the sever 如果电脑是第一次安装MySQL,一般不会出现这样的报错。starting the sever失败,通常是因为上次安装该软件没有清除干净。 第一种解决方法:完全卸载mysql,重新安装 完全卸载该软件的办法&#…...
合并文件夹中所有文件,并输出重复的条形码值
文章目录 一、需求二、处理方式三、代码实现 一、需求 每天会生成一个记录文件(文件名按日期yyyyMMdd格式命名),记录文件中记录有条形码的内容,需要合并最近20次的数据,并提取出有重复的条形码。 也可以进行最近30天数…...
P3089 [USACO13NOV] Pogo-Cow S 弹簧踩高跷
P3089 [USACO13NOV] Pogo-Cow S 弹簧踩高跷 洛谷题目传送门 文章目录 P3089 [USACO13NOV] Pogo-Cow S 弹簧踩高跷题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题目大意方法一(线段树维护dp)code 方法二 (单调队列维护dp&…...
计算机网络 - 第一章(下)
1.2_1 分层结构、协议、接口、服务_哔哩哔哩_bilibili1.2_1 分层结构、协议、接口、服务是王道计算机考研 计算机网络的第7集视频,该合集共计76集,视频收藏或关注UP主,及时了解更多相关视频内容。https://www.bilibili.com/video/BV19E411D78…...
【Uniapp】小程序携带Token请求接口+无感知登录方案2.0
本次改进原文《【Uniapp】小程序携带Token请求接口无感知登录方案》,在实际使用过程中我发现以下bug: 若token恰好在用户访问接口时到期,就会直接查询为空,不反映token过期问题(例如:弹窗显示订单查询记录…...
Ubuntu常用命令
文章目录 1:文件管理2:文档编辑3:系统管理4:磁盘管理5:文件传输6:网络通讯7:设备管理8:备份压缩9:其他命令扩展:知识干货 1:文件管理 ls命令 –…...
ERP重构-SLA子分类账-分布式实现方案
背景 ERP中的GL总账模块,明细数据来源于各个业务模块如库存、成本、应收、应付、费控、资产等,统称为子模块,生成的账叫做子分类账。然而记账的业务逻辑各式各样,但是最终输出都是来源、类型、期间、科目、借贷金额等等关键信息。…...
IP路由协议(RIP、IGRP、OSPF、IS-IS、BGP)
文章目录 1、路由分类2、RIP协议1)RIP的工作原理2)RIP路由表的更新过程3)RIP路由表的更新原则4)RIP的特性5)RIP协议的版本 4、IGRP协议1)IGRP路由表的更新2)IGRP的度量标准 5、OSPF协议1&#x…...
互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景
多线程访问共享资源的时候,避免不了资源竞争而导致数据错乱的问题,所以我们通常为了解决这一问题,都会在访问共享资源之前加锁。 最常用的就是互斥锁,当然还有很多种不同的锁,比如自旋锁、读写锁、乐观锁等࿰…...
Python WSGI 与 Web 开发框架
目录 文章目录 目录WSGIWSGI 的工作原理environ 参数start_resposne 参数 WSGI 的中间件 WSGI Web 开发框架OpenStack 中的应用案例进程入口WSGI Application 加载Paste/PasteDeployRoutesWebOb WSGI Server 启动 WSGI WSGI(Web Server Gateway Interfaceÿ…...
[洛谷]P6464 [传智杯 #2 决赛] 传送门
看到数据范围:n<100,嗯......脑子闪过:还在想什么呢!Floyd啊。哈哈哈 思路: 详细注释: 话不多说,上ACcode!: #include<bits/stdc.h> using namespace std; #define int lo…...
Http协议和RestTemplate协议有什么区别?
目录 一、功能不同 二、技术不同 三、使用场景不同 四、总结 RestTemplate 是一个 Spring 框架提供的用于发送 HTTP请求的客户端工具,它封装了 Java 原生的 HTTP 客户端库,并提供了一组简洁易用的 API 来发送 HTTP 请求和处理响应。而 HTTPÿ…...
基于SpringBoot+微信小程序的医院预约叫号小程序
✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 该项目是基于uniappWe…...
springboot整合RabbitMQ 消费端处理数据
pom 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>写一个rabbitmq配置文件 import org.springframework.amqp.core.Binding; import org.springframewo…...
视频格式转换革新:m4s-converter让B站缓存视频无缝播放
视频格式转换革新:m4s-converter让B站缓存视频无缝播放 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 从缓存困境到自由播放&#x…...
手把手教你为OpenBMC (AST2600平台) 正确配置PCA9545 I2C Switch的DTS节点
深入解析AST2600平台PCA9545 I2C Switch设备树配置实战指南 在嵌入式系统开发中,I2C总线扩展是连接多个外设的常见需求。NXP的PCA9545作为一款4通道I2C总线开关芯片,能够有效解决I2C地址冲突问题,但在实际应用中,设备树(DTS)配置…...
5分钟成为效率大师!NoteGen快捷键可视化配置终极指南
5分钟成为效率大师!NoteGen快捷键可视化配置终极指南 【免费下载链接】note-gen 一款专注于记录和写作的跨端 AI 笔记应用。 项目地址: https://gitcode.com/GitHub_Trending/no/note-gen NoteGen是一款专注于记录和写作的跨端AI笔记应用,通过快捷…...
告别编码等待:LosslessCut的无损视频处理革命
告别编码等待:LosslessCut的无损视频处理革命 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 副标题:掌握零质量损失剪辑、多轨道精细控制与批…...
SDMatte多风格抠图作品集:从商品白底图到艺术创意合成
SDMatte多风格抠图作品集:从商品白底图到艺术创意合成 1. 开篇:当抠图遇上AI 还记得那些年用Photoshop一点一点抠图的痛苦经历吗?边缘总是处理不干净,头发丝永远抠不完整,遇到复杂背景更是让人抓狂。现在,…...
SmolVLA开发环境搭建:从操作系统安装到模型运行的完整路径
SmolVLA开发环境搭建:从操作系统安装到模型运行的完整路径 如果你刚拿到一台新电脑,或者想把旧机器彻底清理干净,从头开始搭建一个能跑SmolVLA模型的环境,那这篇文章就是为你准备的。很多教程都假设你已经有了一个可用的系统&…...
Fay数字人框架终极指南:30分钟打造你的AI虚拟助手
Fay数字人框架终极指南:30分钟打造你的AI虚拟助手 【免费下载链接】Fay Fay 是一个开源的数字人类框架,集成了语言模型和数字字符。它为各种应用程序提供零售、助手和代理版本,如虚拟购物指南、广播公司、助理、服务员、教师以及基于语音或文…...
BH1750光照传感器避坑指南:STM32的I2C通信那些事儿(附STM32F407调试心得)
BH1750光照传感器实战避坑:STM32 I2C通信深度解析与调试技巧 第一次用STM32驱动BH1750光照传感器时,我盯着纹丝不动的数据寄存器发呆了半小时——I2C总线明明显示通信成功,但读回来的光照值永远是零。这种看似简单却暗藏玄机的外设调试经历&a…...
手把手教你用Simulink和Carsim 2019搭建车辆动力学模型(附二自由度模型源码)
从零构建车辆动力学联合仿真模型:Simulink与Carsim 2019实战指南 当你第一次打开Carsim和Simulink时,面对两个庞大软件的无缝对接需求,很容易陷入"从哪开始"的困惑。本文将带你一步步搭建完整的车辆动力学仿真环境,从软…...
别只改.prettierrc了!从Git配置到CI/CD,一劳永逸解决团队换行符冲突
从Git配置到CI/CD:彻底解决团队协作中的换行符冲突 跨平台协作开发时,换行符问题就像鞋里的一粒沙子——看似微不足道,却能让整个团队步履维艰。当Windows的CRLF遇上Unix的LF,不仅会导致Prettier报出恼人的Delete ␍错误ÿ…...
