簡體   English   中英

json.decoder.JSONDecodeError:期望','分隔符:python中的錯誤

[英]json.decoder.JSONDecodeError: Expecting ',' delimiter: Error in python

我用python中的套接字發送json數據

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

這是我發送的數據。 它是字符串類型,因為我不能將 sendall 用於 json 類型。

當我收到它時,我試圖將該字符串轉換為 json。 所以我做了,

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

我得到 json.decoder.JSONDecodeError: Expecting ',' delimiter: line 1 column 59 (char 58) 錯誤。

請幫忙!

您的data字段中存在語法錯誤。 通過將其放入"{"iv": "jdjhvwGriJ95kZwgDWlShw==", "ciphertext": "Fg7ugYYAnPzL+lG8d7QDDA=="}" ,雙引號會弄亂編碼器,導致它拋出錯誤。

如果您想將 value 作為一個對象,您可以簡單地刪除封閉的引號,如下所示:

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==\"}"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM