Ошибка: не все аргументы преобразованы во время форматирования строки в zmq - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь предоставить информацию о хосте и порте отдельно, но я получаю сообщение об ошибке, как указано в вопросе.Причина в том, что zmq берет только адрес, такой как ссылка, например 'tcp: //192.XXX: 5643'.Поэтому я не могу дать адрес хоста самостоятельно или просто ввести его.Я хочу предоставить адрес хоста отдельно, потому что я получаю свой адрес хоста от другой функции, чтобы его было проще передать переменной.

Вот код:

def req_con:
    Context=zmq.Context()
    socket=context.socket(zmq.REQ)
    aad="192.x.x.x"
    port =8574
    host=["%s".format(aad,port)]
    for adres in host:
       socket.connect("tcp://" %adres) ---> error is here
       socket.send_string("get")

Обновлено:

def req_con:
..
..
host:['{p.aad}:{p.port}'.forma(p=req_con())]

Я пытался сделать это лучше, но теперь я получаю максимальную глубину рекурсии, превышенную при вызове ошибки объекта Python

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

.format() это простой способ в строках:

host = "192.x.x.x"
port = 1234
socket.connect("tcp://{}:{}".format(host, port))
0 голосов
/ 24 ноября 2018

Решено

host="192.x.x.X"
port=...
socket.connect("tcp://" "%s:%d" %(format(host),port))
...