Твиты транслировались с использованием tweepy, читая файл json на python - PullRequest
0 голосов
/ 15 декабря 2018

Я транслировал твиты, используя следующий код

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 голосов
/ 15 декабря 2018

Из комментариев: после изучения содержимого файла данных 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 

попытайтесь выяснить, какая из них работает лучше всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...