在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(responphpse); 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数据的php键值对。
以下示例代码演示了如何使用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} python api.add_resource(Hotel, '/hotel编程客栈') if __name__ == '__main__': app.run()
在上面的代码中,首先导入了flask-restful库。然后,在Flask应用程序中创建了一个API资源类Hotel,并定义了一个处理POST请求的方法post()。在post()方www.devze.com法中,使用了request.get_json()方法获取请求体中的JSON数据,并将结果存储在了json_data变量中。然后,使用json.loads()方法将JSON数据加载到一个字典中,并存储在data变量中。最后,从data字典中访问JSON数据的键值对。
以上就是在Python Flask App中获取已发布的JSON对象的解决方案的详细内容,更多关于Python Flask App获取JSON对象的资料请关注编程客栈(www.devze.com)其它相关文章!
精彩评论