python - 在 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 对象中的正确方法是什么?
解决方案
decode
并encode
处理字符数据。您可以使用它们在字符编码格式之间进行转换,例如 utf-8 和 ASCII。获取纯二进制数据(例如图像)并尝试将其转换为字符是没有意义的。并非每个二进制值都可以转换为字符;大多数字符格式都会留下一些保留或未使用的值。
您需要的是一种简单的原始字节格式。将文件作为字节序列读取;这保留了二进制形式,使您的最终 JSON 使用者可以轻松地利用这些信息。
推荐阅读
- yolov4 - YOLOv4 图像的 classes.txt 文件和每个标签 txt 文件的放置位置
- angular - 输入'字典
' 没有呼叫签名。打字稿,ngRx - php - 重定向到 PayPal 时出现 AMOUNT_ERROR - 旧的 PayPal 脚本
- arrays - 错误:对象作为 React 子项无效(找到:带有键 {} 的对象)。改用数组
- mysql - 为数据库中的多个表配置 debezium 连接器
- c# - 使用 Xamarin.Forms.Map.Position 的三角函数问题
- c - 在C中提取字符串(子字符串)的某个部分
- forms - 拖入 Access 表单时没有反应
- angular - ng update 自动将软件包更新到版本 12.0.0-next.0
- python - Discord.py 从 1 个特定角色中删除所有用户