在python框架flask上开发了一个简单的web应用程序,试图获取来自post ajax请求的json响应。以下是ajax调用的代码:
var hotel=$( "#listhotel option:selected" ).val(); $.ajax({ url: "/gethotels", contenttype: "application/xml; charset=utf-8", data: json.stringify({'hotel':hotel}), type: "post", success: function(response){ var r= json.parse(response); var rating =r.message alert(rating); $("#rate").html("ratings : "+rating); $("#rate").show('slow'); console.log(response); }, error: function(error){ alert(response); console.log(error); } });
在python代码中,如下所示:
def gethotels(): try: _hotel = {"value": request.json['hotel']} print _hotel hotel= _hotel["value"] print hotel 但没有获得json对象,请求给予帮助以获取json对象/值。
解决方案
为了在python flask应用程序中获取发布的json对象,可以按照以下步骤操作:
- 使用request.get_json()方法获取请求体中的json数据。
- 将json数据加载到一个字典中。
- 从字典中访问json数据的键值对。
以下示例代码演示了如何获取发布的json对象并从中获取数据:
from flask import flask, request app = flask(__name__) @app.route('/get_json', methods=['post']) def get_json(): json_data = request.get_json() # 获取请求体中的json数据 data = json.loads(json_data) # 将json数据加载到一个字典中 # 从字典中访问json数据的键值对 hotel = data['hotel'] rating = data['rating'] # 返回响应 return {'hotel': hotel, 'rating': rating} if __name__ == '__main__': app.run()
在上面的代码中,request.get_json()
方法用于获取请求体中的json数据,并将结果存储在json_data
变量中。然后,使用json.loads()
方法将json数据加载到一个字典中,并存储在data
变量中。最后,从data
字典中访问json数据的键值对。
- 确保在flask应用程序中安装了
flask-restful
库。 - 在flask应用程序中导入
flask_restful
库。 - 创建一个api资源类来处理json请求。
- 在api资源类中定义一个处理post请求的方法。
- 在处理post请求的方法中,使用
request.get_json()
方法获取请求体中的json数据。 - 将json数据加载到一个字典中。
- 从字典中访问json数据的键值对。
以下示例代码演示了如何使用flask-restful
库获取发布的json对象并从中获取数据:
from flask import flask from flask_restful import resource, api app = flask(__name__) api = api(app) class hotel(resource): def post(self): json_data = request.get_json() # 获取请求体中的json数据 data = json.loads(json_data) # 将json数据加载到一个字典中 # 从字典中访问json数据的键值对 hotel = data['hotel'] rating = data['rating'] # 返回响应 return {'hotel': hotel, 'rating': rating} api.add_resource(hotel, '/hotel') if __name__ == '__main__': app.run()
在上面的代码中,首先导入了flask-restful库。然后,在flask应用程序中创建了一个api资源类hotel,并定义了一个处理post请求的方法post()。在post()方法中,使用了request.get_json()方法获取请求体中的json数据,并将结果存储在了json_data变量中。然后,使用json.loads()方法将json数据加载到一个字典中,并存储在data变量中。最后,从data字典中访问json数据的键值对。
以上就是在python flask app中获取已发布的json对象的解决方案的详细内容,更多关于python flask app获取json对象的资料请关注代码网其它相关文章!
发表评论