python 2.7 与 json 的套接字通信

标签 python json python-2.7 sockets

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

由于 ROS(melodic),我使用 python 2.7,由于tensorflow,我也使用 python 3.6。

字典数据,例如 {'key_name':[[1,2,3],[4,5,6]]},使用 JSONEncoder 发送和编码。编码器()
客户端通过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()

之前转储服务器接收到的数据

关于python 2.7 与 json 的套接字通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61006696/

相关文章:

linux - ansible 调用由第一个变量文件和字符串形成的变量并在第二个变量文件中列出

javascript - 如何从 Javascript/Google App 脚本中的另一个函数调用数组

javascript - jsTree:progressive_render 与数组中的 ajax/render 节点

python - Pandas/numpy 帮助向量化跨数据帧的查找、计算和重新排序的序列

python - 在一个数据框中查找符号并将其替换为跨数千列的另一个数据框中的值

java - 输出 JSON 相对于纯 HTML 的好处

python - 全局为python 3.2和python 2.7设置不同的系统路径

python - OpenCV 的密集光流 (Farneback) 函数的输出是什么?这如何用于在 Python 中构建光流图?

python - 从数组值动态填充 numpy 矩阵?

python - 如何从 python 中的套接字读取 JSON? (JSON的增量解析)