【问题标题】:How to fix - cannot encode object: 28.0, of type: <class 'PIL.TiffImagePlugin.IFDRational'>?如何修复 - 无法编码对象:28.0,类型:<class 'PIL.TiffImagePlugin.IFDRational'>?
【发布时间】:2021-05-18 09:19:07
【问题描述】:

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

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

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

为什么pillow 使用TiffImagePlugin 类进行JPEG 元数据提取?

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

谢谢!

[*FWIW,进入 mongodb]

【问题讨论】:

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


    【解决方案1】:

    要将 IFDRational 对象 obj 转换为 float 类型,您可以这样做

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

    现在变成&lt;class 'float'&gt;

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

    IFDR详细信息如下:

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

    【讨论】:

      猜你喜欢
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      • 2020-05-17
      • 1970-01-01
      相关资源
      最近更新 更多