繁体   English   中英

python 2.7 socket 与 json 通信

[英]python 2.7 socket communication with json

我想通过套接字发送/接收数据。

由于 ROS(旋律),我使用 python 2.7,并且因为 tensorflow 而使用 python 3.6。

dict 数据,例如{'key_name':[[1,2,3],[4,5,6]]} ,使用JSONEncoder.encoder()发送和编码。
客户端通过loads()接收到json数据并重新发送给服务器。
客户端使用 python 2.7,服务器使用 python 3.6

def _send(socket, send_data):
    json_data = json.JSONEncoder().encode(send_data)
    socket.sendall(json_data)

def _recv(socket):
    recv_data = socket.recv(BUFSIZE)
    json_data = json.loads(recv_data, encoding="utf-8")

    return json_data

我有错误

  File "/usr/lib/python3.6/json/deoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 4097 (char 4096)

我需要一个在 python 2.7 和 3.6 上运行的 python 代码。

错误来自 json 解码器。

json_data = json.loads(recv_data, encoding="utf-8"),

当您的 json 数据(在您的情况下为recv_data )格式不正确时,这是正常的。 通常缺少逗号“,”或其他内容。 对于调试,我建议您转储在服务器收到的数据,然后再使用json.loads()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM