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字符串时,解析成功。有什么解决办法?

4

1 回答 1

2

我认为您的代码有效,错误的原因可能是因为 UnicodeEncodeError 当您尝试将 unicode 值打印到终端时发生。我猜你是在非 unicode 感知终端中调用脚本。相反,如果您打印了unicode 值的repr,或者(将其写入输出文件)它可能会起作用:

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

此外,使用通用的捕获所有异常/错误消息隐藏特定异常/错误消息通常是不好的做法。

于 2012-03-10T15:43:43.193 回答