我有一個奇怪的問題沒有JSON對象可以解碼。有效的JSON
我有一個計劃,通過套接字發送一個JSON字符串:
json_string = JSONEncoder().encode({
"id_movil": str(id_movil),
"correo": "[email protected]"
})
socket_client.sendall(json_string)
在服務器上,我有:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(1)
conn, addr = s.accept()
buffer_json = conn.recv(1024)
data = json.loads(buffer_json)
然後,一個異常拋出:
Traceback (most recent call last):
data = json.loads(buffer_json)
File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
當我更改「correo 「在json從"[email protected]"
到[email protected]
或任何其他字符串異常不再拋出。
PS。只有在使用套接字時才拋出異常。當我在Python shell上使用json.loads
時,它的工作原理是
'conn.recv'返回的數據與傳遞給'socket_client.sendall'的數據相同嗎?你檢查了嗎? – jwodder 2014-11-01 02:16:17
是的,是一樣的。爲了準確,這個:{「correo」:「[email protected]」,「id_movil」:「15」} – imarban 2014-11-01 02:18:29