如何消除服务器端的 JSON 加载错误?

问题描述 投票:0回答:1

我正在尝试通过以太网连接从客户端计算机向服务器计算机发送字典。 字典看起来像这样: data_transfer_dict={'目标':'','任务':'','光学/红外':'','手臂':'','光学变焦':0,'数字变焦':0,'俯仰' :00000, '偏航':00000, '重置相机':0, '目标选择':0, '截屏':0} 我尝试过的方法是json以及pickle JSON 代码: 客户端

obj1.send_data(json.dumps(data_transfer_dict).encode('utf-8'))
def data send(self, data):
    if self.is_running:
        self.client_socket.send(data)

服务器端

while True:
    count_bytes=self.client_socket.recv(2048)
    count=json.loads(count_bytes.decode('utf-8'))
    print("Dictionary: ", count)

以上代码片段引用自https://www.geeksforgeeks.org/python-interconversion- Between-dictionary-and-bytes/#:~:text=Method%20%3A%20Using%20encode()%20 %2B%20dumps,然后%20到%20对应的%20byte%20值。 客户端在多线程中连续发送数据,服务器连续接收该数据。 服务器端产生的错误是: json.decoder.JSONDecodeError: Extra data: line 1 column 193 (char 192)

我也参考过这些页面,但可以理解很多并获得帮助: Python json.loads 显示 ValueError:额外数据 json.decoder.JSONDecodeError:额外数据:第 2 行第 1 列(字符 190)

json python-3.x multithreading pickle jsonpickle
1个回答
0
投票

在发送或接收数据之前,您可以尝试验证您的数据是否为“json 格式”。您可以通过免费的在线服务对其进行验证。 看看是否有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.