2010-07-26 6 views
1

저는 Python으로 JSON 객체를로드하는 방법을 알아 보려고 애 쓰고 있습니다.Python에서 JSON 코드를로드하는 중 문제가 발생했습니다.

서버에 JSON 문자열을 보낼 수 있지만 실패합니다.

내가 자바 스크립트와 웹 소켓을 통해 전송하고있는 무슨이다 :

ws.send('{"test":"test"}'); 

서버가 문제없이 수신하지만 그것을 확인할 수 없습니다 :

{"test":"test"} 
This is not a JSON object! 

에서 앞으로 오는 이 코드 :

    try: 
         data = data[:-1] 
         json.loads(data) 
        except ValueError: 
         print 'This is not a JSON object!' 
        else: 
         print ('JSON found!') 

data = data[:-1]은 THR 보낸 구분 기호를 제거 할 수있다 websocket.

+3

오류에 대해 자세히 설명해 주시겠습니까? 데이터 .__ repr __() 및 오류와 마찬가지로, catch됩니다. – cypheon

+0

나는 __repr __()에 대해 쓴 적이 없었습니다. 놀랍습니다.''\ x00 { "test": "test"} '' 문제는 거기에 있었고, 시작 문자가있는 것 같습니다.하지만 그걸 볼 수는 없습니다. 콘솔. 그것을 제거하면 그것을 고쳤습니다. 오류를 얻는 방법을 알려주시겠습니까? 파이썬의 오류 처리 방식에 익숙하지 않은 나는 ValueError를 그대로 인쇄 할 수 없다. – skerit

+3

"ValueError, e 제외 :"라고 생각합니다. 그런 다음 "인쇄"할 수 있습니다. – cypheon

답변

1
import traceback 
try: 
    d = json.loads(data[data.index('{'):-1]) 
except: 
    traceback.print_exc() 
else: 
    print(d) 

이렇게하면 데이터 문자열의 사전 부분 만 json.loads()로 구문 분석됩니다.

관련 문제