Python获取Excel内容
Python获取Excel内容
目录
- Python获取Excel内容
- 1.读取Excel并登陆
- 2.下载Excel中图片 数据存储到列表
- 3.上传到接口
需求:获取
xlsx files目录下的所有Excel信息,并将数据打包成字典格式上传到接口
示例数据:

1.读取Excel并登陆
import os
import re
import glob
import pandas as pd
from PIL import Image
import requests
from openpyxl import load_workbook# 获取当前路径
current_path = os.getcwd()
# 定义目标文件夹和子目录 如果不存在则新建
dir_path = current_path + '\\xlsx files'
images_dir = current_path + '\\images'
target_files = glob.glob(os.path.join(dir_path, '*.xlsx'))
os.makedirs(dir_path, exist_ok=True)
os.makedirs(images_dir, exist_ok=True)
print(target_files)# 定义登陆url和接口url
login_url = 'http://127.0.0.1:8000/core/login/'
api_url = 'http://127.0.0.1:8000/revice_product/'
u_p = {'username': '123', 'password': '123'}
res = requests.post(url=login_url, data=u_p)
token = res.headers.get('Set-Cookie')
cookies = {f'{token.split('=')[0]}': f'{token.split('=', 1)[1]}'}
2.下载Excel中图片 数据存储到列表
# 存放图片名称信息
files_name = []
# 遍历目录下的所有Excel文件
for i in target_files:df = pd.read_excel(i) # 读取Excel信息 存放到dfwb = load_workbook(i) # 读取Excel函数 用于图片处理ws = wb[wb.sheetnames[0]] # 切换到第一个sheet表# 遍历获取表中所有图片for image in ws._images:image_row = image.anchor._from.row # 图片所在行image_col = image.anchor._from.col # 图片所在列# 根据图片位置获取其它信息 比如这里是产品名df_name = df.iloc[image_row, image_col - 6]# 打开图片并存储img = Image.open(image.ref).convert("RGB")# 以产品名命名图片 并存入列表img.save(os.path.join(images_dir, f'{df_name}.png'))files_name.append(df_name)df = pd.read_excel(i)db = pd.read_excel(i) # 读取Excel其它的信息 存放到db# 遍历Excel每一行数据for index, j in df.iterrows():row_dict = {}# 遍历每一列数据for col in df.columns:# 排除空数据和第一列数据 因为第一行一般没有数据if not pd.isna(j[col]) and col != 'Unnamed: 0':# 案例中的列名是 姓名(name)格式的 这里作者只取括号内的内容col_name = re.search(r'\(([^)]*)\)', col).group(1)# 下面就是对数据进行处理if col_name == 'needle_type':j[col] = re.search(r'\d+', j[col]).group(0) + 'G'if col_name == 'gram_weight':j[col] = re.search(r'\d+', str(j[col])).group(0)# 以列名作为键 内容作为值存储在row_dict字典row_dict[col_name] = j[col] # {'name': '张三'}# 每读取好一行就将字典保存到列表data_list.append(row_dict)
print(files_name)
print(data_list)
3.上传到接口
# 遍历所有经过处理的数据
for i in data_list:# 根据已存图片 获取其对应的数据if i['name'] in files_name:with open(os.path.join(images_dir, i['name'] + '.png'), 'rb') as f:# 读取该图片 修改为符合form-data格式的键值对files = {'image': (i['name'] + '.png', f, 'image/png')}# 生成字典数据 不包括图片信息data = {k: v for k, v in i.items() if k != 'product_image'}# 通过post请求发送数据data和图片files到指定urlres = requests.post(url=api_url, cookies=cookies, data=data, files=files)
相关文章:
Python获取Excel内容
Python获取Excel内容 目录 Python获取Excel内容1.读取Excel并登陆2.下载Excel中图片 数据存储到列表3.上传到接口 需求:获取xlsx files目录下的所有Excel信息,并将数据打包成字典格式上传到接口 示例数据: 1.读取Excel并登陆 import os impo…...
python实现小游戏随机猜数
1、脚本练习 import random# 初始化剩余的猜测次数 counts 3 # 生成一个1到10之间的随机整数 numb random.randint(1, 10)# 循环直到猜测次数用完 while counts > 0:tmp input("请输入小鱼手里的数字 (你还剩下 {} 次机会): ".format(counts))guess int(tmp)…...
YOLOv5与YOLOv8 训练准备工作(不包含环境搭建)
前言:我发现除了安装环境需要耗费大量时间以外,对于训练前的准备工作也要琢磨一段时间,所以本篇主要讲一下训练前需要准备的工作(主要是XML格式换为txt,以及划分数据集验证集,和训练参数的设置)…...
字节跳动发Seed-TTS语音合成模型,可模仿任意人的声音,效果逼真
前期我们介绍过很多语音合成的模型,比如ChatTTS,微软语音合成大模型等,随着大模型的不断进步,其合成的声音基本跟真人没有多大的区别。本期介绍的是字节跳动自家发布的语音合成模型Seed-TTS。 Seed-TTS 推理包含四个功能模块&…...
微信小程序教程011-3:京西购物商城实战之Home页实现
文章目录 3、首页3.0 创建home分支3.1 配置网络请求3.2 轮播图区域3.2.1 请求轮播图的数据3.2.2 渲染轮播图的UI结构3.2.3 配置小程序分包3.2.4 点击轮播图跳转到商品详情页3.2.5 封装 uni.$showMsg() 方法3.3 分类导航区域3.3.1 获取分类导航的数据3.3.2 渲染分类导航的UI结构…...
使用 Manim 创建一个二维坐标平面【NumberPlane】
NumberPlane 是 Manim 中用于创建一个二维坐标平面的类。它可以帮助用户在场景中可视化坐标轴、网格线以及其他数学概念。具体来说,它的功能包括: 坐标轴:NumberPlane 提供了 x 轴和 y 轴,通常是中心对称的,允许用户清…...
Android.mk(TODO)
Android.mk 文件是 Android 构建系统(基于 GNU Make)的一个核心部分,用于定义如何构建项目中的模块。在 Android 中,Android.mk 文件主要用于描述本地模块(如库、可执行文件等)的构建信息。以下是 Android.…...
WPF datagrid 选中某一行后让第一列的checkbox选中
在 WPF 中的 DataGrid 中,如果希望在选中某一行后让该行的第一列中的 CheckBox 选中,可以通过绑定和事件处理来实现。以下是具体的步骤: 绑定数据:确保 DataGrid 的数据源绑定到一个支持 INotifyPropertyChanged 接口的集合。模板…...
洛谷 P1347 排序(福建省历届夏令营)(图论:拓扑排序)
题目描述 一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列,例如,一个有序的数列 A,B,C,D表示 A<B,B<C,C<D。在这道题中,我们将给你一系列形如 A<B的关系,并要求你判断是否能够根据这些关系确定这个…...
Redis 缓存击穿、穿透、雪崩
1. 缓存击穿 问题描述: 缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又都去数据库去取数据,引起数据库压力瞬间增大…...
使用开源RustDesk部署远程控制服务
使用开源RustDesk部署远程控制服务 文档编写时间:2024/8/1 一、部署环境 操作系统:Ubuntu 2204 LTS IP地址:192.168.108.115 开源软件项目地址:rustdesk/rustdesk-server: RustDesk Server Program (github.com) 参考文档&a…...
Coco-LIC基于ubuntu的vscode进行断点调试
1、下vscode和插件 参考这个也行 https://zhuanlan.zhihu.com/p/704522656 2、编译debug版本并修改json 要在 Visual Studio Code (VSCode) 中进行断点调试 ROS 任务,你需要进行以下几个步骤: ### 1. 安装所需插件 - **C/C 插件**: 提供对 C 代码的调试…...
【Web】从TFCCTF-FUNNY浅析PHPCGI命令行注入漏洞利用
目录 背景 CVE-2012-1823 发散利用 法一:读文件 法二:数据外带 背景 CVE-2012-1823 PHP-CGI远程代码执行漏洞(CVE-2012-1823)分析 | 离别歌 省流: 命令行参数不光可以通过#!/usr/local/bin/php-cgi -d include…...
对比一下在 OpenCV 和 AE 中如何实现常用效果 [精]
确实,Adobe After Effects (AE) 也是一个功能强大的工具,特别擅长处理图像和视频的视觉效果和动画。很多在 OpenCV 中实现的图像处理和增强效果,AE 也可以轻松完成,甚至以更加直观的方式实现。下面对比一下在 OpenCV 和 AE 中如何…...
docker安装及使用
一、docker优点及作用 优点: 基础镜像MB级别创建简单隔离性强启动速度秒级移植与分享放便 作用:资源隔离 cpu、memory资源隔离与限制访问设备隔离与限制网络隔离与限制用户、用户组隔离限制 二、docker安装 2.1.配置yum源 yum install -y yum-uti…...
HTML前端面试基础(一)
HTML面试题可以涵盖多个方面,包括HTML基础、HTML5新特性、标签语义化、元素分类、属性理解等。以下是一些常见的HTML面试题及其简要答案: 1. HTML基础 问题: 请解释一下HTML文档的基本结构。 答案: HTML文档的基本结构包括<…...
[Git][多人协作][下]详细讲解
目录 1.不同分支下多人协作2.远程分⽀删除后,本地git branch -a依然能看到 1.不同分支下多人协作 ⼀般情况下,如果有多需求需要多⼈同时进⾏开发,是不会在⼀个分⽀上进⾏多⼈开发,⽽是⼀个需求或⼀个功能点就要创建⼀个feature分…...
MySQL笔记(七):索引
一、索引优化速度 创建对应字段的索引,只对该列有效,只能提高该列的查询速度 创建索引后,查询速度变快,但是表占用空间变大 create index 索引名 on 表名(需要创建索引的列)二、索引的原理 普通索引允许该字段重复 全文索引&#…...
JS 原型和原型链
构造函数 封装是面向对象思想中比较重要的一部分,js 面向对象可以通过构造函数实现的封装。 同样的将变量和函数组合到了一起并能通过 this 实现数据的共享,所不同的是 JS 借助构造函数创建出来的实例对象之间是彼此不影响的 存在浪费内存的问题&#…...
【无标题】图像增强技术:直方图均衡化、拉普拉斯算子、对数变换与伽马变换
图像增强技术:直方图均衡化、拉普拉斯算子、对数变换与伽马变换 在图像处理领域,图像增强是一种关键技术,用于提升图像的视觉效果和质量。本文将介绍四种常用的图像增强方法:直方图均衡化、拉普拉斯算子、对数变换和伽马变换。我…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
