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

