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 数据结构,如字典、列表初始化函数的这个外部并相应地附加值.
下面是我用来从 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 数据结构,如字典、列表初始化函数的这个外部并相应地附加值.