我该如何修复错误:没有JSON对象可以从zmq DEALER解码为ROUTER消息?

时间:2013-07-03 08:06:38

标签: json python-2.7 pyzmq

我有一个转发到ROUTER的DEALER套接字,一旦消息到达,我就无法将其解码为json,如果我打印收到的文本并将其复制到python终端,我可以解码但是接收代码无法。

这是代码发送:

self._out_socket = self._out_context.socket(zmq.DEALER)
self._out_socket.connect("ipc://testout")
self._out_socket.send_json(bump)

这是接收它的代码:

ip_soc.socket(zmq.ROUTER)
ip_soc.socket.bind("ipc://testout")
ip_stream = ZMQStream(ip_soc.socket)
ip_stream.on_recv(send_res)
#... ioloop start here to wait

发送此消息时:

{'index': 0, 'image_generated': 'false', 'resdict': [], 'result': [' (\\mathrm{\\%i}1) \x05\x05'], '_id': u'1ceb8c99c1a248a48418a6067b335613', 'purpose': 'result'}

这是我收到的:

['\x00k\x8bEg', '{"index":0,"image_generated":"false","resdict":[],"result":[" (\\\\mathrm{\\\\%i}1) \\u0005\\u0005"],"_id":"1ceb8c99c1a248a48418a6067b335613","purpose":"result"}']

如果我尝试解码它(上面列表的第二部分:)

dictionary = json.loads(message [1])

我遇到了这个错误:

No JSON object could be decoded 
出了什么问题? 如果我使用PUSH和PULL,相同的代码工作正常。 最后的结果我喜欢N到1 zmq方案,其中多个独立进程可以发送给一个接收器,这就是为什么我试图使用DEALER-ROUTER。

1 个答案:

答案 0 :(得分:0)

没关系,我使用了ast模块,使用了这个问题的接受答案  here