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

Python get variable value outside the function in RabbitMQ

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

您可以在方法末尾使用 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)

你也可以像here那样把var当作一个全局变量, 我个人不太喜欢的东西

创建该变量 global 或者您可以将其存储在任何数据库或文件中,您也可以使用 Python 数据结构,如字典、列表初始化函数的这个外部并相应地附加值.