使用json python解析无线编辑的推文

时间:2012-03-10 15:10:25

标签: python json twitter-feed

关于解析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字符串时,解析成功。什么可以解决方案?

1 个答案:

答案 0 :(得分:2)

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

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

使用通用的catch-all异常/错误消息隐藏特定异常/错误消息通常也是不好的做法。