2017-09-13 6 views
0
다음

이 기능이 예상 결과를 출력 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() 

에서 메시지를 얻기 위해 사용하고있다 RabbitMQ에서 함수 외부 변수 값을 얻을 수 있지만, 무엇을 찾고있는 것은 변수 json_resp를 얻는 것입니다 추가 처리를위한 콜백 함수의 외부

답변

2

해당 변수를 global으로 만들거나 다음을 수행 할 수 있습니다. 데이터베이스 나 파일에 저장하면 Dictionary와 같은 Python 데이터 구조를 사용할 수 있습니다. 목록은 함수의 바깥 쪽을 초기화하고 이에 따라 값을 추가합니다.

+0

은 파일에 저장됩니다. 멋진 :) –

0

사용자의 끝에서 json_resp 값을 사용할 수 있습니다. 같이 그렇지 않으면, 당신은

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을 처리 할 수 ​​있습니다 추가 처리

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) 실행 매개 변수로 json_resp으로 함수를 호출 할 수 here, 내가 개인적으로 좋아하지 않는 것

+0

샘플 코드 –

+0

을 게시하면 return json_resp 후 첫 번째 점 –

+0

을 편집 할 수 있습니다. print (json_resp) throwed and error - NameError : name 'json_resp'와 같은 함수 밖에서 액세스하려고했습니다. 정의되지 않았습니다. –