网站开发有几个阶段,竞价排名服务,网站备案报价,网站设计的就业和发展前景Python获取Excel内容 目录 Python获取Excel内容1.读取Excel并登陆2.下载Excel中图片 数据存储到列表3.上传到接口 需求#xff1a;获取xlsx files目录下的所有Excel信息#xff0c;并将数据打包成字典格式上传到接口 示例数据#xff1a; 1.读取Excel并登陆
import os
impo…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_okTrue)
os.makedirs(images_dir, exist_okTrue)
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(urllogin_url, datau_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) Gif 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(urlapi_url, cookiescookies, datadata, filesfiles)