2012-03-10 3 views
0

twitter json을 구문 분석하는 것과 관련하여 많은 게시물이 있지만 그 중 아무 것도 내 문제를 해결하지 못했습니다. json python을 사용하여 유니 코드 짹짹 구문 분석

이 테스트 프로그램 코드

import json 

file = open('tweet', 'r') 
tweet = file.read() 
#{"geo":null,"text":"Lmao!! what time? I dont finish evening cleaning till 5 RT \[email protected]_user: football anyone?.....i wanna have a kickabout :(\u201d"} 
#{"geo":null,"text":"Lmao!! what time? I dont finish evening cleaning till 5 RT @some_user: football anyone?.....i wanna have a kickabout :("} 
def parseStreamingTweet(tweet): 
    try: 
     singleTweetJson = json.loads(tweet) 
     for index in singleTweetJson: 
      if index == 'text': 
       print "text : ", singleTweetJson[index] 
    except ValueError: 
     print "Error ", tweet 
     print ValueError 
     return 

parseStreamingTweet(tweet) 

입니다. 트윗이 스트림으로 나오고 목적을 확인하기 위해 파일에 트윗을 저장하고 확인했습니다. 트위터 피드의 편집 된 부분이 있습니다.

누구나 나에게 유니 코드 된 트윗을 구문 분석하는 방법을 말할 수 있습니까? 댓글의 첫 번째 짹짹은 유니 코드이며 두 번째 짹짹은 아닙니다. 먼저 유니 코드 문자열을 제거하는 동안 오류가 발생하면 파싱이 성공적입니다. 해결책은 무엇이 될 수 있습니까?

답변

2

코드가 작동한다고 생각합니다. 오류의 원인은 유니 코드 값을 터미널에 인쇄하려고 할 때 발생하는 UnicodeEncodeError 때문일 수 있습니다. 나는 유니 코드가 아닌 터미널에서 스크립트를 호출하고 있다고 생각합니다. 대신 경우에 당신은 유니 코드 값의 에 repr을 인쇄하거나, 아마 일하는 것이 (출력 파일로 작성) : 또한

print "text : ", repr(singleTweetJson[index]) 

는 일반적으로 나쁜 관행을 일반에 급격와 특정 예외/오류 메시지를 숨기려면 모든 예외/오류 메시지.

+0

감사합니다. 이 일했다! 하지만 유니 코드 지원 터미널에서 인쇄 (Netbeans IDE를 사용하고 유니 코드를 지원합니다.) 메시지가 예외적으로 인쇄되었지만 배열 '텍스트'에 인쇄되지 않았습니다. 어쨌든 작동했습니다. 감사! – Curiousity