使用tweepy流式传输的推文,在python中读取json文件

时间:2018-12-15 00:07:28

标签: python json twitter tweepy

我使用以下代码流化了推文

class CustomStreamListener(tweepy.StreamListener):
    def on_data(self, data):
        try:
            with open('brasil.json', 'a') as f:
                f.write(data)
                return True
        except BaseException as e:
            print("Error on_data: %s" % str(e))
        return True

现在我有一个json文件(brasil.json)。我想在python上打开它进行情感分析,但是我找不到办法。我设法使用以下方法打开了第一条推文:

with open('brasil.json') as f:
    for line in f:
        tweets.append(json.loads(line))

,但不会读取所有其他推文。有想法吗?

1 个答案:

答案 0 :(得分:1)

摘自注释:在检查json数据文件的内容之后,所有tweets均以奇数(如果有行)为单位。偶数为空。

这引起了json.decoder.JSONDecodeError

有两种方法可以处理此错误,要么只读取奇数行,要么使用异常处理。

使用奇数行:

with open('brasil.json') as f:
    for n, line in enumerate(f, 1):
        if n % 2 == 1: # this line is in an odd-numbered row
            tweets.append(json.loads(line))

异常处理:

with open('brasil.json', 'r') as f:
    for line in f:
        try:
            tweets.append(json.loads(line))
        except json.decoder.JSONDecodeError:
            pass # skip this line 

尝试看看哪个效果最好。