json.decoder.JSONDecodeError:应为','分隔符:python中的错误

2024-09-29 19:33:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python中的套接字发送json数据

{“接收方”:“2”,“发送方”::1,“序号”:10,“数据”:“{“iv”:“jdjhvwGriJ95kZwgDWlShw=”,“密文”:“Fg7ugYYAnPzL+lG8d7QDDA=”}”

这是我发送的数据。它是字符串类型,因为我不能将sendall用于json类型

当我收到它时,我试图将该字符串转换成json。 所以我做了

            data = client_socket.recv(1024)
            #data = json.loads(data)
            data = json.loads(json.dumps(data))

我得到了json.decoder.JSONDecodeError:应为','分隔符:第1行第59列(字符58) 错误

请帮忙


Tags: 数据字符串clientjson类型datasocketloads
1条回答
网友
1楼 · 发布于 2024-09-29 19:33:56

您的data字段中有语法错误。通过将其放在"{"iv": "jdjhvwGriJ95kZwgDWlShw==", "ciphertext": "Fg7ugYYAnPzL+lG8d7QDDA=="}"中,双引号会弄乱编码器,导致其抛出错误

如果希望值成为对象,可以简单地删除包含的引号,如下所示:

data = {"receiver": "2", "sender:": 1, "seq_num": 10, "data": {"iv": "jdjhvwGriJ95kZwgDWlShw==", "ciphertext": "Fg7ugYYAnPzL+lG8d7QDDA=="}}

但是,如果您希望它是一个字符串,那么您必须使里面的所有双引号都像这样转义:

{
    "receiver": "2", "sender:": 1, "seq_num": 10, 
    "data": "{\"iv\": \"jdjhvwGriJ95kZwgDWlShw==\", \"ciphertext\": \"Fg7ugYYAnPzL+lG8d7QDDA==\"}"
}

相关问题 更多 >

    热门问题