2013-07-03 13 views
1

我有一個DEALER套接字渲染到路由器,一旦消息到達,我無法將其解碼爲json,如果我打印接收到的文本並將其複製到python終端,我可以解碼它,但接收代碼是無法。我該如何修復錯誤:沒有JSON對象可以從zmq DEALER解碼到ROUTER消息?

這裏是代碼發送:

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"}'] 

如果我嘗試對其進行解碼(上面所列:)

字典= json.loads(消息[1])

IM會見此錯誤的第二部分:

No JSON object could be decoded 

什麼會出錯? 如果我使用PUSH和PULL,相同的代碼工作正常。 最終結果我希望它是一個N到1的ZMQ方案,其中多個獨立進程可以發送給一個接收器,這就是爲什麼即時嘗試使用經銷商路由器。

+0

我有同樣的問題,我相信我找到了答案在這裏http://stackoverflow.com/a/34242555/ 202168 – Anentropic

回答

0

其行,我用從這個公認的答案使用的AST模塊,使質疑 here

相關問題