파이썬으로 간단한 웹 소켓 서버를 가지고 있고, Android 앱 클라이언트에서 메시지를받습니다. JSON에서 클라이언트의 메시지 페이로드를 만들려고했으나 느꼈습니다. String에있을 때만 작동합니다. 내가 찾은 하나의 해결책은 JSON 형식과 메시지 문자열 만 유지하는 것입니다 :Python으로 JSON 형식의 문자열 읽기
try {
json.put("name", "Jack");
json.put("age", "24");
message = json.toString(2);
} catch (JSONException e) {
e.printStackTrace();
}
webSocket.send(message);
자바 스크립트 JSON.stringify(message)
에서 영감을 내가 서버에 메시지를 인쇄하고는
내 질문을 포맷 할 것 서버에서받은 JSON으로 되돌릴 수있는 방법은 무엇입니까? 파이썬 :
나는이 방법으로 시도def on_message(self,message):
data = json.loads(message)
self.write_message(data['name'])
을하지만 난이 오류가있어 :
ERROR:tornado.application:Uncaught exception in/
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/tornado/websocket.py", line 494, in _run_callback
result = callback(*args, **kwargs)
File "index.py", line 24, in on_message
data = json.loads(message)
File "/usr/lib/python3.4/json/__init__.py", line 318, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.4/json/decoder.py", line 343, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.4/json/decoder.py", line 361, in raw_decode
raise ValueError(errmsg("Expecting value", s, err.value)) from None
ValueError: Expecting value: line 1 column 1 (char 0)
[''json''] (https://docs.python.org/3/library/json.html) 설명서에는 json을 인코딩하고 디코딩하는 예제가 나와 있습니다. 즉, json에서 string으로 또는 그 반대로 간다. –
'json.loads()'에 주어진'message' 값을 출력하는 것은 매우 도움이 될 것입니다. – norok2
실제로 함수 내에서 인쇄 해보십시오. 'message'에 대해 빈 문자열 값으로 호출하는 것 같습니다. 예를 들어'json.loads ('')'는 설치 과정에서 매우 유사한 오류를 발생시킵니다. – norok2