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

Tweets streamed using tweepy, reading json file in python

我使用以下代码流式传输推文

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))

但它不会阅读所有其他推文。有什么想法吗?

来自评论:在检查 json 数据文件的内容后,所有推文都在奇数行中。偶数为空

这引起了 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 

试试看哪个效果最好。