在Python Flask App中獲取已發(fā)布的JSON對(duì)象的解決方案
在Python框架Flask上開發(fā)了一個(gè)簡(jiǎn)單的Web應(yīng)用程序,試圖獲取來(lái)自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è)字典中。
- 從字典中訪問(wèn)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è)字典中
# 從字典中訪問(wèn)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字典中訪問(wèn)JSON數(shù)據(jù)的鍵值對(duì)。
- 確保在Flask應(yīng)用程序中安裝了
flask-restful庫(kù)。 - 在Flask應(yīng)用程序中導(dǎo)入
flask_restful庫(kù)。 - 創(chuàng)建一個(gè)API資源類來(lái)處理JSON請(qǐng)求。
- 在API資源類中定義一個(gè)處理POST請(qǐng)求的方法。
- 在處理POST請(qǐng)求的方法中,使用
request.get_json()方法獲取請(qǐng)求體中的JSON數(shù)據(jù)。 - 將JSON數(shù)據(jù)加載到一個(gè)字典中。
- 從字典中訪問(wèn)JSON數(shù)據(jù)的鍵值對(duì)。
以下示例代碼演示了如何使用flask-restful庫(kù)獲取發(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è)字典中
# 從字典中訪問(wèn)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庫(kù)。然后,在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字典中訪問(wèn)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)文章
在python2.7中用numpy.reshape 對(duì)圖像進(jìn)行切割的方法
今天小編就為大家分享一篇在python2.7中用numpy.reshape 對(duì)圖像進(jìn)行切割的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
python 處理微信對(duì)賬單數(shù)據(jù)的實(shí)例代碼
本文通過(guò)實(shí)例代碼給大家介紹了python 處理微信對(duì)賬單數(shù)據(jù),代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
對(duì)python pandas 畫移動(dòng)平均線的方法詳解
今天小編就為大家分享一篇對(duì)python pandas 畫移動(dòng)平均線的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
Python 根據(jù)數(shù)據(jù)模板創(chuàng)建shapefile的實(shí)現(xiàn)
今天小編就為大家分享一篇Python 根據(jù)數(shù)據(jù)模板創(chuàng)建shapefile的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
pycharm使用conda創(chuàng)建的虛擬環(huán)境時(shí)找不到python.exe解決辦法
這篇文章主要給大家介紹了關(guān)于pycharm使用conda創(chuàng)建的虛擬環(huán)境時(shí)找不到python.exe的解決辦法,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考價(jià)值,需要的朋友可以參考下2024-03-03
python集成開發(fā)環(huán)境配置(pycharm)
本文是python快速進(jìn)階系列文章的第一篇,給大家介紹的是python集成開發(fā)環(huán)境pycharm的配置,有需要的小伙伴可以參考下2020-02-02
在Python下利用OpenCV來(lái)旋轉(zhuǎn)圖像的教程
這篇文章主要介紹了在Python下利用OpenCV來(lái)旋轉(zhuǎn)圖像的教程,代碼和核心的算法都非常簡(jiǎn)單,需要的朋友可以參考下2015-04-04

