在Python Flask App中獲取已發(fā)布的JSON對象的解決方案
在Python框架Flask上開發(fā)了一個簡單的Web應(yīng)用程序,試圖獲取來自POST AJAX請求的JSON響應(yīng)。以下是AJAX調(diào)用的代碼:
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應(yīng)用程序中獲取發(fā)布的JSON對象,可以按照以下步驟操作:
- 使用request.get_json()方法獲取請求體中的JSON數(shù)據(jù)。
- 將JSON數(shù)據(jù)加載到一個字典中。
- 從字典中訪問JSON數(shù)據(jù)的鍵值對。
以下示例代碼演示了如何獲取發(fā)布的JSON對象并從中獲取數(shù)據(jù):
from flask import Flask, request app = Flask(__name__) @app.route('/get_json', methods=['POST']) def get_json(): json_data = request.get_json() # 獲取請求體中的JSON數(shù)據(jù) data = json.loads(json_data) # 將JSON數(shù)據(jù)加載到一個字典中 # 從字典中訪問JSON數(shù)據(jù)的鍵值對 hotel = data['hotel'] rating = data['rating'] # 返回響應(yīng) return {'hotel': hotel, 'rating': rating} if __name__ == '__main__': app.run()
在上面的代碼中,request.get_json()
方法用于獲取請求體中的JSON數(shù)據(jù),并將結(jié)果存儲在json_data
變量中。然后,使用json.loads()
方法將JSON數(shù)據(jù)加載到一個字典中,并存儲在data
變量中。最后,從data
字典中訪問JSON數(shù)據(jù)的鍵值對。
- 確保在Flask應(yīng)用程序中安裝了
flask-restful
庫。 - 在Flask應(yīng)用程序中導(dǎo)入
flask_restful
庫。 - 創(chuàng)建一個API資源類來處理JSON請求。
- 在API資源類中定義一個處理POST請求的方法。
- 在處理POST請求的方法中,使用
request.get_json()
方法獲取請求體中的JSON數(shù)據(jù)。 - 將JSON數(shù)據(jù)加載到一個字典中。
- 從字典中訪問JSON數(shù)據(jù)的鍵值對。
以下示例代碼演示了如何使用flask-restful
庫獲取發(fā)布的JSON對象并從中獲取數(shù)據(jù):
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數(shù)據(jù) data = json.loads(json_data) # 將JSON數(shù)據(jù)加載到一個字典中 # 從字典中訪問JSON數(shù)據(jù)的鍵值對 hotel = data['hotel'] rating = data['rating'] # 返回響應(yīng) return {'hotel': hotel, 'rating': rating} api.add_resource(Hotel, '/hotel') if __name__ == '__main__': app.run()
在上面的代碼中,首先導(dǎo)入了flask-restful庫。然后,在Flask應(yīng)用程序中創(chuàng)建了一個API資源類Hotel,并定義了一個處理POST請求的方法post()。在post()方法中,使用了request.get_json()方法獲取請求體中的JSON數(shù)據(jù),并將結(jié)果存儲在了json_data變量中。然后,使用json.loads()方法將JSON數(shù)據(jù)加載到一個字典中,并存儲在data變量中。最后,從data字典中訪問JSON數(shù)據(jù)的鍵值對。
以上就是在Python Flask App中獲取已發(fā)布的JSON對象的解決方案的詳細(xì)內(nèi)容,更多關(guān)于Python Flask App獲取JSON對象的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
兩行代碼解決Jupyter Notebook中文不能顯示的問題
這篇文章主要介紹了兩行代碼解決Jupyter Notebook中文不能顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04Python實現(xiàn)動態(tài)給類和對象添加屬性和方法操作示例
這篇文章主要介紹了Python實現(xiàn)動態(tài)給類和對象添加屬性和方法操作,涉及Python面向?qū)ο蟪绦蛟O(shè)計中類與對象屬性、方法的動態(tài)操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2020-02-02在Django的URLconf中進(jìn)行函數(shù)導(dǎo)入的方法
這篇文章主要介紹了在Django的URLconf中進(jìn)行函數(shù)導(dǎo)入的方法,Django是Python的最為著名的開發(fā)框架,需要的朋友可以參考下2015-07-07YOLOv5車牌識別實戰(zhàn)教程(一)引言與準(zhǔn)備工作
這篇文章主要介紹了YOLOv5車牌識別實戰(zhàn)教程(一)引言與準(zhǔn)備工作,在這個教程中,我們將一步步教你如何使用YOLOv5進(jìn)行車牌識別,幫助你快速掌握YOLOv5車牌識別技能,需要的朋友可以參考下2023-04-04使用selenium+chromedriver+xpath爬取動態(tài)加載信息
這篇文章主要介紹了使用selenium+chromedriver+xpath爬取動態(tài)加載信息2022-02-02