Redis中的芹菜结果编码

Redis中的芹菜结果编码,redis,celery,Redis,Celery,我使用Ubuntu盒上的RabbitMQ代理调用芹菜中的任务,但只是使用Redis作为结果后端进行设置。我可以找到任务结果,但它们看起来像“\x80\x02}q\x01(U\x06statusq\x02U\AsAccessQ\x03U\ttracebackq\x04NU\x06resultq\x05}q\x06(X\x06\x00\x00\x00result}q\a(X\x06\x00\x00\x00\x00statusK\x01X\r\x00\x00\x00\x00\x00\x00\x00\x

我使用Ubuntu盒上的RabbitMQ代理调用芹菜中的任务,但只是使用Redis作为结果后端进行设置。我可以找到任务结果,但它们看起来像“\x80\x02}q\x01(U\x06statusq\x02U\AsAccessQ\x03U\ttracebackq\x04NU\x06resultq\x05}q\x06(X\x06\x00\x00\x00result}q\a(X\x06\x00\x00\x00\x00statusK\x01X\r\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00total\U resultsM\X04\X04\X04\X04\X04\X04\x00\x00\X04\x00\x00\x00\x00\x00\x00\x00\x00\x00匹配)q\x00(X\a\x00\x00\x00hero\U idK\x15X\n\x00\x00\x00账户idI4294967295\nX\x0b\x00\x00\x00player\U slotK\x00u}q\x0c

我的默认芹菜编码是ASCII,Redis的基本配置中似乎没有指定编码

utils.encoding.default_encoding()
'ascii'

我应该如何将此文本转换为有意义的内容?我看不出这是如何编码的;是否有任何建议尝试的编码?

默认情况下,结果会被腌制为utf-8字符串(请参见任务)。您可以使用以下工具手动检查有效负载:

import pickle
s = "\x80\x02}q..."
obj = pickle.loads(s)
print obj

pickle
通常很好,除非您在多语言环境中操作,然后JSON或msgpack是很好的解决方案。

就像做梦一样工作。谢谢!