Flask API返回queue - queue.get()的值失败



我试图将所有响应附加在一个端点下的队列中,另一方面,我试图使用另一个端点仅获得一个结果。但是当使用第二个端点时,我得到失败的响应。更好的方法是什么?提前感谢

import requests
import json
import queue
q_sample = queue.Queue()
@app.route('/try',methods=['GET'])
def getschedule():
x = requests.get("https://api.postalpincode.in/pincode/620012",verify=False)
j_data = json.loads(x.content)
for n in j_data:
y = n['PostOffice']
for x in y:
q_sample.put(x)
return jsonify({"size":q_sample.qsize()})
@app.route('/oneschedule',methods=['GET'])
def oneschedule():
if not q_sample.empty():
return jsonify({"schedule":q_sample.get(False)})
else:
return "Failed"

问题是您需要在修改它的函数中声明q_sample为全局,通过在里面添加global q_sample行:

import requests
import json
import queue
q_sample = queue.Queue()
@app.route('/try',methods=['GET'])
def getschedule():
global q_sample  # <--- declare q_sample global here
x = requests.get("https://api.postalpincode.in/pincode/620012",verify=False)
j_data = json.loads(x.content)
for n in j_data:
y = n['PostOffice']
for x in y:
q_sample.put(x)
return jsonify({"size":q_sample.qsize()})
@app.route('/oneschedule',methods=['GET'])
def oneschedule():
global q_sample  # <--- declare q_sample global here too
if not q_sample.empty():
return jsonify({"schedule":q_sample.get(False)})
else:
return "Failed"

最新更新