以下是用于从producer.py
获取消息的函数def callback(ch, method, properties, body):
result = body.decode()
resp = JSONEncoder().encode(result)
json_resp = json.loads(resp)
print(json_resp)
ch.basic_ack(delivery_tag = method.delivery_tag)
channel.stop_consuming()
这打印出预期的结果,但我们要找的是在回调函数之外获取变量json_resp以进行进一步处理
答案 0 :(得分:3)
制作变量global
或者你可以将它存储在任何数据库或文件中,你也可以使用像Python这样的Python数据结构,列表初始化函数的这个外边并相应地附加值。
答案 1 :(得分:0)
您可以在方法结束时使用json_resp值。否则,您可以使用json_resp作为参数调用函数来执行进一步处理
1)
def callback(ch, method, properties, body):
result = body.decode()
resp = JSONEncoder().encode(result)
json_resp = json.loads(resp)
print(json_resp)
ch.basic_ack(delivery_tag = method.delivery_tag)
channel.stop_consuming()
return json_resp
responce = callback(ch, method, properties, body)
print responce
2)
def callback(ch, method, properties, body):
result = body.decode()
resp = JSONEncoder().encode(result)
json_resp = json.loads(resp)
print(json_resp)
ch.basic_ack(delivery_tag = method.delivery_tag)
channel.stop_consuming()
my_process_func(json_resp)
您还可以将var视为全局变量,如here所示, 我个人不喜欢的东西