首页 > 解决方案 > 在 Python 3.8 中,如何从文件中加载图像数据以包含在 JSON 对象中?

问题描述

我正在使用 Python 3.8。我想将图像字节数据放入 JSON 对象。所以我尝试了这个

with open(os.path.join(dir_path, "../image_data", "myimg.jpg"), mode='rb') as img_file:
    image_data = img_file.read().decode("utf-16")
    my_json_data = {
        "image_data": image_data
        ...
    }

但这image_data =条线给出了这个错误:

UnicodeDecodeError: 'utf-16-le' codec can't decode bytes in position 0-1: illegal UTF-16 surrogate

将数据加载到 JSON 对象中的正确方法是什么?

标签: pythonjsonpython-3.xfilegetimagedata

解决方案


decodeencode处理字符数据。您可以使用它们在字符编码格式之间进行转换,例如 utf-8 和 ASCII。获取纯二进制数据(例如图像)并尝试将其转换为字符是没有意义的。并非每个二进制值都可以转换为字符;大多数字符格式都会留下一些保留或未使用的值。

您需要的是一种简单的原始字节格式。将文件作为字节序列读取;这保留了二进制形式,使您的最终 JSON 使用者可以轻松地利用这些信息。


推荐阅读