Python获取Excel内容

Python获取Excel内容

目录

  • Python获取Excel内容
    • 1.读取Excel并登陆
    • 2.下载Excel中图片 数据存储到列表
    • 3.上传到接口

需求:获取xlsx files目录下的所有Excel信息,并将数据打包成字典格式上传到接口

示例数据:

image-20240806135036076

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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/393189.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法】贪心算法

应用场景——集合覆盖问题 假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。如何选择最少的广播台,让所有的地区都可以接收到信号 贪心算法介绍 1.贪心算法是指在对问题进行求解时,在每一步选择中都采取最好或者最优的选择 2…

智观察 | 行业赛道里的AI大模型

‍ “AI改变世界”被炒得热火朝天,结果就换来AI聊天? 实际上,在日常娱乐之下,AI正在暗暗“憋大招”,深入各行各业,发挥更专业的作用。 自动驾驶 最近“萝卜快跑”霸榜热搜长达一周,让无人驾…

手机在网状态接口如何对接?(二)

一、什么是手机在网状态? 传入手机号码,查询该手机号的在网状态,返回内容有正常使用、停机、在网但不可用、不在网(销号/未启用/异常)、预销户等多种状态。 二、手机在网状态使用场景? 1.用户验证与联系…

【问题解决方案】npm install报错问题:npm ERR! - 多种解决方案,总有一种可以解决

文章目录 1.问题重述2.解决方案方案1.确认根目录正确方案2.确认文件名正确方案3. 确认node.js安装完成(注意这个环境变量配置没有写完)方案4 改用yarn安装(亲测可用) 3.延申问题解决方案问题1:需要低版本的node.js 写在…

企业图纸防泄密怎么做?最好的八款图纸加密软件推荐

保护企业图纸不被泄露是现代企业信息安全管理中的重要任务。随着信息技术的发展,企业需要采取多种措施来确保图纸的安全性。以下是一些常用的图纸防泄密方法和八款推荐的图纸加密软件: 图纸防泄密方法 1. 数据备份:定期备份图纸数据&#xf…

Jboss 漏洞

一.CVE-2015-7501 访问/invoker/JMXInvokerServlet 开启下载存在漏洞 二.CVE-2017-7504 三CVE-2017-12149 启动vulhub环境,访问/invoker/readonly出现如下界面,说明存在漏洞 使用工具连接 四.Administration Console弱⼝令 访问/admin-console/login…

数据库的管理

1、官网下载或者wget tar -xvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 2、确定mysql-community-server正常安装之后就可以开始配置 3、初始化mysqld 服务 mysqld initeialize 4、启动服务 systemctl start mysqld 5、添加开机启动列表 systecmctrl enable mysqld在/var…

git——Git提交本地项目代码到远程Github仓库步骤图解

目录 一、Git提交本地项目代码到远程Github仓库步骤 一、Git提交本地项目代码到远程Github仓库步骤 1、在Github创建一个空仓库,例如名称为jetcache-demo 2、打开【Git Bash Here】 3、进入本地项目文件夹 cd d:/ cd D:/project1/本地服务/jetcache-demo4、初始…

Golang面试题三(map)

1.map底层实现 由图看出,其实map的底层结构体是hmap,同时hmap里面维护着若干个bucket数组(即桶数组)。bucket数组中每个元素都是bmap结构的,bmap中存储着8个key-value的键值对,如果是满了的话,当…

用OpenCV与MFC写一个简单易用的图像处理程序

工厂里做SOP及测试报告以及员工资格鉴定等常需用到简单的图像处理,PS等软件正版费用不菲,学习起来成本也高。Windows自带的图像处理软件,用起来也不是那么得心应手。因此我用OpenCV与MFC写了一个简单易用的图像处理程序。 程序界面 基于简单…

从传统监控到智能化升级:EasyCVR视频汇聚平台的一站式解决方案

随着科技的飞速发展和社会的不断进步,视频监控已经成为现代社会治安防控、企业管理等场景安全管理中不可或缺的一部分。而在视频监控领域,EasyCVR视频汇聚平台凭借其强大的多协议接入能力,在复杂多变的网络环境中展现出了卓越的性能和广泛的应…

【第15章】Spring Cloud之Gateway网关过滤器(URL黑名单)

文章目录 前言一、常用网关过滤器1. 常用过滤器2. 示例3. Default Filters 二、定义接口服务1. 定义接口 三、自定义过滤器1. 过滤器类2. 应用配置 四、单元测试1. 正常2. 黑名单 总结 前言 上一章我们通过,路由断言根据请求IP地址的黑名单功能,作用范围…

【C#语音文字互转】C#语音转文字(方法一)

Whisper.NET开源项目:https://github.com/sandrohanea/whisper.net/tree/main 一. 环境准备 在VS中安装 Whisper.net,在NuGet包管理器控制台中运行以下命令: Install-Package Whisper.net Install-Package Whisper.net.Runtime其中运行时包…

STL-queue容器适配器

目录 一、queue 1.1 使用 1.2 模拟实现 二、priority_queue 2.1 使用 2.2 仿函数 2.2.1 概念 2.2.2 使用 2.3 模拟实现 一、queue 1.1 使用 具体解释详见官方文档:queue - C Reference (cplusplus.com) queue就是数据结构中的队列:数据结构之…

深度学习中降维的几种方法

笔者在搞网络的时候碰到个问题,就是将特征维度从1024降维到268,那么可以通过哪些深度学习方法来实现呢? 文章目录 1. 卷积层降维2. 全连接层降维3. 使用注意力机制4. 使用自编码器 1. 卷积层降维 可以使用1x1卷积层(也叫pointwis…

《大道平渊》· 拾柒 —— 个人的心理定位决定市场

《大道平渊》 拾柒 个人的心理定位决定市场。 对于个人定位来说,个人的心理定位影响你的行为。 比如我的心理定位是经营者,那我的行为则是满足市场需求和解决问题。 因为心理定位的不同,会影响你思考问题的角度。 . 以上皆为个人思考&am…

【为什么不要买运营商的机顶盒?解锁智能电视新体验,从一台刷机机顶盒开始】

【置顶:机顶盒刷机步骤请跳转此链接】 在这个数字化飞速发展的时代,电视早已不再是单一的播放工具,它正逐步演变成为家庭娱乐与信息获取的综合中心。然而,许多家庭在选择机顶盒时,往往会因为惯性或便利而直接选择运营商提供的机顶…

常见中间件漏洞(三、Jboss合集)

目录 三、Jboss Jboss介绍 3.1 CVE-2015-7501 漏洞介绍 影响范围 环境搭建 漏洞复现 3.2 CVE-2017-7504 漏洞介绍 影响范围 环境搭建 漏洞复现 3.3 CVE-2017-12149 漏洞简述 漏洞范围 漏洞复现 3.4 Administration Console弱囗令 漏洞描述 影响版本 环境搭建…

【多线程-从零开始-伍】volatile关键字和内存可见性问题

volatile 关键字 import java.util.Scanner; public class Demo2 { private static int n 0; public static void main(String[] args) { Thread t1 new Thread(() -> { while(n 0){ //啥都不写 } System.out.println("t1 线程结束循环"); }, "…

C++类和对象——中

1. 类的默认成员函数 默认成员函数就是⽤⼾没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。⼀个类,我们不写的情况下编译器会默认⽣成以下6个默认成员函数,需要注意的是这6个中最重要的是前4个,最后两个取地址重载不…