Flask:尝试解析POST有效内容时出现Unicode错误

时间:2018-05-14 02:06:10

标签: python flask unicode

我正在尝试构建一个Flask API端点,该端点从JSON有效负载中获取图像URL。我正在使用之前为我工作的flask.request.get_json()

@app.route("/caption", methods=["POST"])
def caption():
    image_url = flask.request.get_json().get('image_url')
    image_info = get_caption(image_url)
    return flask.jsonify(image_info)

但是,当尝试将网址发布到内容类型为application/json的端点时,我会收到AttributeError: 'unicode' object has no attribute 'image_url'

我尝试打印出flask.request.get_json()的内容,然后我

{u'image_url': u'https://images.pexels.com/photos/66997/pexels-photo-66997.jpeg'}

如何将我的有效负载作为字典而不是unicode对象?

3 个答案:

答案 0 :(得分:1)

虽然我不认为flask.request.get_json()会将您发布的字典返回给@zwer。 但如果你真的得到那本字典。 尽量做到这一点来实现你的目标。

import json
def caption():
    image_json = flask.request.get_json()
    image_url = json.loads(json.dumps(image_json)).get('image_url')

答案 1 :(得分:1)

好像你正在使用python2并且你可以打印出结果,所以为什么不打印出类似字典的对象的类型并找出它的类型。

答案 2 :(得分:1)

我刚刚意识到错误与我在image_url函数中处理get_caption的方式有关。错误消息让我相信问题在于解析有效负载。我为这个误会道歉。谢谢所有回答的人,你帮我找到了这个错误。