使用IPTCInfo3保存图片时报bytes对象不能解释为整数错误如何解决
修复后代码
from iptcinfo3 import IPTCInfo imagename = 'horse.jpg' # 初始化时指定编码避免字节转换异常 info = IPTCInfo(imagename, encoding='utf-8') info['keywords'] = ('horse', 'brown', 'animal', 'nature') # 传入force参数跳过校验直接写入原文件 info.save(force=True)
错误原因
该报错是IPTCInfo3适配Python3的遗留bug:库内部元数据写入逻辑未做编码兼容判断,处理字符串类型字段时会错误将字节对象作为整型参数传入写入方法,触发类型错误。
修改说明
- 初始化
IPTCInfo实例时显式传入encoding='utf-8'参数,指定元数据编码格式,避免默认ASCII编码解析时的字节转换问题 save方法传入force=True参数,跳过库内部旧版本的格式校验逻辑,直接将修改后的元数据覆盖写入原文件,不会生成额外新文件
注意事项
- 如需要添加中文关键词,直接传入中文字符串即可,无需手动编码,库会按指定的utf-8编码自动处理
- 操作前建议备份原图片,避免异常写入损坏原文件
内容的提问来源于stack exchange,提问作者project.py
相关产品推荐
相关产品推荐

