如何在Flask中对图片进行JSON化

时间:2019-03-20 16:31:03

标签: json python-3.x

我正在尝试使用Flask构建一个简单的API,现在我想在其中读取一些gif图片。我需要怎么做才能将此序列化为JSON?

这是我的天真代码:

def getfile(filename):
    file = request.files['file']
    return file.read()

@namespace.route('/get_image')
class Getpicture(DecoratedResource):
    @staticmethod 
    def get():
        if request.args.get('type') == '1':
           filename = 'ok.gif'
        else:
            filename = 'error.gif'
        file = getfile(filename)
        return  jsonify(file, mimetype='image/gif')  

结果:

{   “ message”:“浏览器(或代理)发送了该服务器无法理解的请求。” }

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是将图像编码为base64字符串,然后将其提供给json,这样,您只传递了一个字符串,而不是尝试将图像转换为json

import base64

with open("yourfile.ext", "rb") as image_file:
    encoded_string = base64.b64encode(image_file.read())