[英]base64 'payload' string from rabbitmq queue can't be decoded properly
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的有效负载。 队列中消息的原始内容来自芹菜。 实际上,队列包含在其上排队的芹菜任务。
似乎数据是由pickle或其他东西序列化的。
你可以尝试这样:
import cPickle as pickle
rawinput = msg['payload']
input = rawinput.decode("base64")
data = pickle.loads(input)
print data
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.