openpyxl 插入图片报错,keyError: ‘.webp‘

文章讲述了在使用requests获取网页图片并用openpyxl插入Excel时遇到的KeyError,发现是由于webp格式问题。作者通过修改文件类型和保存方式解决了问题,总结了排查和解决此类bug的过程。
摘要由CSDN通过智能技术生成

背景

在使用requests请求网页,并将图片保存到本地时,然后通过openyxl插入到excel,在最后的wb.save()时报错keyError: ‘.webp’,通过筛选找到报错的图片,发现本地有这个图片并且能正常打开,就是不能正常插入到excel中。

解决步骤

1.尝试修改文件类型

之前文件类型保存为png,误以为是png格式的问题,所以将文件后缀改为jpg,并重新尝试插入图片到excel,结果还是报错,手动修改文件类型为jpg后,发现可行,所以就想到了是文件保存方式不对

2.修改文件保存方式:

之前是requests得到文件的content,然后用with open保存图片,他这个大坑是原始网页是一个滑动的图片,虽然能正常保存和打开,但是插入时就会报错,具体原因以后细究。

#之前代码如下
 res = requests.get(xx, headers=headers)
 if res.status_code == 200:
      with open(f'./图片/{hh}.png', 'wb') as f:
          f.write(res.content)

改为使用

from io import BytesIO
res = requests.get(xx, headers=headers)
        if res.status_code == 200:
                img = Image.open(BytesIO(res.content))
                img.save(f'./资料文件/图片/{hh}.png')

尝试再次插入到excel中发现成功,大功告成!!!

3.总结

排解bug用了大约3个小时,从开始出现bug,然后从海量数据中找到找到出错的图片所属的品类,然后在品类中先查看该品类的所有图片是否都已经保存到本地,然后根据列表的切片,找到出错的数据,开始排查其与其他网页的区别,初步尝试+GPT解决问题!!!

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值