2016-12-31 8 views
1

は、コマンドプロンプトで次のPythonコードを実行しようとすると: 私は、Python 2.ZMQソケットタイプエラー:ユニコード文字列のみエラー:修正はありますか?

import zmq 
context = zmq.Context() 
socket = context.socket(zmq.SUB) 
socket.connect('tcp://0.0.0.0.:6667') 
socket.setsockopt_string(zmq.SUBSCRIBE, 'value') 

と私は実行すると、次のエラーを取得を使用しています:

socket.setsockopt_string(zmq.SUBSCRIBE, value) File "C:\Program Files\Anaconda2\lib\site-packages\zmq\sugar\socket.py", line 192, in >set_string 
raise TypeError("unicode strings only") TypeError: unicode strings only 

あなたはPLSについて助言することができます解決策?

+0

[Unicode string](https://docs.python.org/2/howto/unicode.html#unicode-literals-in-python-source-code)を渡してみましたか? –

+0

多分これは助けることができる:http://stackoverflow.com/questions/4182603/python-how-to-convert-a-string-to-utf-8 – PerunSS

+0

私はhttps://docs.pythonですべての提案された方法を試した.org/2/howto/unicode.html#unicode-literal-in-python-source-code – stats999

答えて

0

socket.setsockopt_stringを受け入れるunicode optvalの文字列。あなただけpython2でコードを実行した場合

、あなたはpython2とのpython3の両方をサポートする場合、あなたはhttp://pyzmq.readthedocs.io/en/latest/unicode.htmlを見てみましょう

try: 
    sock.setsockopt(zmq.SUBSCRIBE, b'value') 
except TypeError: 
    sock.setsockopt_string(zmq.SUBSCRIBE, b'value') 

を使用することができます

sock.setsockopt(zmq.SUBSCRIBE, b"value")

を使用する必要があります

関連する問題