2012-03-10 16 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) 

あります。 Tweetはストリームに入って目的を確認するためにファイルにツイートを保存してチェックしました。ツイッターフィードの編集された部分があります。

誰でも私にユニコードで書かれたツイートを解析する方法を教えてもらえますか?コメントの最初のつぶやきはユニコードであり、2番目のツイートはユニコードではありません。最初にエラーがありますが、ユニコード文字列を削除すると、解析が成功します。何が解決策になりますか?

答えて

2

私はあなたのコードが動作すると思うが、その理由はユニコードの値をターミナルに印刷しようとすると起こるUnicodeEncodeErrorが原因であると考えられます。私はあなたが非ユニコード対応端末でスクリプトを呼び出すと思っています。その代わり場合は、Unicode値ののreprを印刷し、またはそれはおそらく動作します(出力ファイルにそれを書いた):また

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

その一般的に悪い習慣を総称catch-と特定の例外/エラーメッセージを非表示にしますすべての例外/エラーメッセージ。

+0

ありがとうございます!これはうまくいった!私はUnicode対応ターミナルで印刷しました(Netbeans IDEを使用していて、Unicodeをサポートしています)。メッセージは例外的に印刷されましたが、配列 'text'では印刷されませんでした。ありがとう! – Curiousity

関連する問題