2015-05-22 170 views
0

解析JSON我在C插座通過TCP套接字發送此char[](字符串):麻煩在Python

{"time":0, "latitude":0.0000000, "longitude":0.0000000, "heading":0.000000, "roll":0.000, "pitch":0.000, "yaw":0.000} 

現在看來似乎應該在我的Python客戶端被識別爲有效JSON,但運行:

parsed = json.loads(sock.recv(1024).decode('utf-8')) 

生成以下錯誤:

ValueError: Extra data: line 1 column 117 - line 1 column 1024 (char 117 - 1024

也許C在一些投擲Python不喜歡的額外位。

找出這種情況,我試圖在輸入字符串上調用decode('ascii', 'ignore'),希望這會消除這些字符,但目前爲止沒有任何效果。

任何幫助將不勝感激!

+0

打印時它看起來像什麼? –

+0

如果我打印sock.recv(1024).decode('utf-8')'我得到'{「time」:0,「latitude」:0.0000000,「longitude」:0.0000000,「heading」:0.000000, roll「:0.000,」pitch「:0.000,」yaw「:0.000}',如我所料。 –

+2

@JamesTaylor:如果你使用'print repr(sock.recv(1024).decode('utf-8'))''怎麼辦? –

回答

2

這是常見的有使用:

.strip('\x00') 

在Python從C刪除字符串的空終止。