?,python-3.x,python-imaging-library"/>

首页 > 解决方案 > 如何修复 - 无法编码对象:28.0,类型:?

问题描述

我正在尝试pillow在 python3 中使用 JPEG 文件序列化 EXIF 元数据。正在使用my_jpeg_image._getexif()(也许有更好的方法)提取元数据。

当我尝试序列化*这些数据时,我收到错误

cannot encode object: 28.0, of type: <class 'PIL.TiffImagePlugin.IFDRational'>

为什么TiffImagePlugin枕头使用一个类来提取JPEG元数据?

如何将 a 转换为IFDRational可序列化类型,例如float/int在这种情况下(和/或一般情况下)?

谢谢!

[*FWIW,进入 mongodb]

标签: python-3.xpython-imaging-library

解决方案


要将 IFDRational 对象转换为objfloat 类型,您可以执行

number = obj._numerator / obj._denominator
print(type(number))

现在变成了 <class 'float'>

但是,如果分母为 0 ,则可能需要异常处理。

IFDRational详细信息如下:

https://pillow.readthedocs.io/en/stable/_modules/PIL/TiffImagePlugin.html


推荐阅读