Flask get_json不返回正确的JSON

时间:2017-08-15 14:42:01

标签: python json ajax flask

我在使用Flask解码JSON时遇到问题。

从AJAX发送以下请求:

$.ajax
({
type: "POST",
url: 'http://localhost:5000/getSurveyResult/',
dataType: 'json',
contentType: 'application/json',
async: true,
data: '{"1":"UTF-16","2":"Ja"}',
success: function () {
alert("Thanks!");
}

服务器端:

@app.route('/getSurveyResult/', methods=['POST'])
def get_survey_result():
    request_json = request.get_json()
    print request_json
    return "OK"

打印给我这个奇怪的输出,我无法使用request_json [1]访问字段:

{u'1': u'UTF-16', u'2': u'Ja'}

1 个答案:

答案 0 :(得分:2)

打印输出中字符串前面的u表示字符串为unicode,这是标准的python行为,请参见此处:What does the 'u' symbol mean in front of string values?

对于您的request_json变量,密钥都是字符串,可以使用request_json["1"]进行访问(请注意1周围的引号)。

JSON只允许按键设计字符串:https://www.w3schools.com/js/js_json_objects.asp