Python在RabbitMQ中的函数外部获取变量值

时间:2017-09-13 09:52:39

标签: python-3.x rabbitmq python-pika

以下是用于从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以进行进一步处理

2 个答案:

答案 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所示, 我个人不喜欢的东西