0

Twitter json の解析に関する投稿はたくさんありますが、私の問題を解決したものはありません。

これはコードです

import json

file = open('tweet', 'r')
tweet = file.read()
#{"geo":null,"text":"Lmao!! what time? I dont finish evening cleaning till 5 RT \u201c@some_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)

これはテストプログラムです。ツイートが流れてくるので、確認のためにツイートをファイルに保存して確認しました。ツイッターの編集部分があります。

ユニコード化されたツイートを解析する方法を教えてください。コメントの最初のツイートは Uni-code で、2 番目のツイートはそうではありません。最初にエラーがあり、ユニコード文字列を削除している間、解析は成功しています。解決策は何ですか?

4

1 に答える 1

2

あなたのコードは機能すると思います。エラーの理由は、おそらく、Unicode 値を端末に出力しようとしたときに発生する UnicodeEncodeError が原因です。非ユニコード対応端末でスクリプトを呼び出していると思います。代わりに、Unicode 値のreprを出力した場合、または (出力ファイルに書き込んだ場合) おそらく動作するでしょう:

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

また、一般的なキャッチオール例外/エラーメッセージで特定の例外/エラーメッセージを非表示にすることは、一般的に悪い習慣です。

于 2012-03-10T15:43:43.193 に答える