Python zmq co robim zle?

Python zmq co robim zle?
« kdy: 14. 12. 2020, 17:21:16 »
Zdravim. Asi som sa trosku dost zaplietol s json.
Mam
Kód: [Vybrat]
x = {"Data1":0,"Data2":"Test String"}
def send_array_and_str(socket, data, flags=0):
   
    socket.send_json(data, flags | zmq.SNDMORE)
    return socket.send(data, flags)

context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5667")
time.sleep(0.2)
my_ndarray = GUI_ARRAY

while True:
    print('Now sent')
    send_array_and_str(socket, my_ndarray)
    time.sleep(1)
Ale hadze mi to chybu
Kód: [Vybrat]
TypeError: {'Data1': 0, 'Data2': 'Test String'} does not provide a buffer interface. Preco sa to deje?


Ink

  • *****
  • 654
    • Zobrazit profil
    • E-mail
Re:Python zmq co robim zle?
« Odpověď #1 kdy: 14. 12. 2020, 17:59:07 »
Zdravim. Asi som sa trosku dost zaplietol s json.
Mam
Kód: [Vybrat]
x = {"Data1":0,"Data2":"Test String"}
def send_array_and_str(socket, data, flags=0):
   
    socket.send_json(data, flags | zmq.SNDMORE)
    return socket.send(data, flags)

context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5667")
time.sleep(0.2)
my_ndarray = GUI_ARRAY

while True:
    print('Now sent')
    send_array_and_str(socket, my_ndarray)
    time.sleep(1)
Ale hadze mi to chybu
Kód: [Vybrat]
TypeError: {'Data1': 0, 'Data2': 'Test String'} does not provide a buffer interface. Preco sa to deje?

https://docs.python.org/3/c-api/buffer.html
https://stackoverflow.com/questions/14797806/sending-an-existing-dict-through-zmq-ipc

To posilani dat tam mas dvakrat - send_json() jede - pro send() bys musel udelat neco jako

socket.send(json.dumps(data).encode("ascii"), flags)

Re:Python zmq co robim zle?
« Odpověď #2 kdy: 14. 12. 2020, 19:19:07 »
Dik pomohlo.