我在使用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'}
答案 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