我需要将 png 图像保存到 python 中的 json 文件中。另外,json文件的开头必须是这样的:
{"image":"data:image/jpeg;base64,/etc.
我怀疑这意味着我还需要将其转换为jpeg格式。
这是我到目前为止所尝试过的:
import base64, json
filename = 'example_png.png'
f = open(filename, 'rb')
img_data = f.read()
f.close()
enc_data = base64.b64encode(img_data)
json.dump({'image':enc_data}, open('example_png.json', 'w'))
这导致了以下错误: TypeError:字节类型的对象不可 JSON 序列化
我也尝试过解码。例如,我添加了
enc_data = enc_data.decode('utf-8')
在保存到 json 文件之前。然后有些东西被保存到文件中,但显然格式不正确。
如果有任何帮助,我将非常感激。
尝试:
import base64
import json
filename = "your_image.png"
with open(filename, "rb") as f_in, open("example_png.json", "w") as f_out:
enc_data = base64.b64encode(f_in.read()).decode("utf-8")
json.dump({"image": f"data:image/png;base64,{enc_data}"}, f_out)