from pyrabbit.api import Client
import base64
msg = cl.get_messages('vhost', "somequeue", count=1)[0]
rawinput = msg['payload']
print rawinput
>> gAJ9cQEoVQdleHBpcmVzcQJOVQN1dGNxA4hVBGFyZ3NxBF1xBShY1AIAAHsiaGlzdG9y
input = base64.b64decode(rawinput)
print input
>> �}q(UexpiresqNUutcq�Uargsq]q(X�
这将返回一个奇怪的字符,否则不会产生适当的可解析的python dict。我想知道是否有一些方法可以正确解码来自rabbitmq的有效负载。队列中消息的原始内容来自芹菜。实际上,队列包含在其上排队的芹菜任务。
答案 0 :(得分:3)
似乎数据是由pickle或其他人序列化的。
你可以这样试试:import cPickle as pickle
rawinput = msg['payload']
input = rawinput.decode("base64")
data = pickle.loads(input)
print data