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