Когда я вызываю Twitter API, он дает мне строку твитов в формате JSON
например Пример
data = {"creat_at": «Пн 22 апреля 22:45:05 +0000 2019», «text»: «Только что подтверждено! Марк Дердзинский, специалист по данным Data @dexcom, присоединяется к нашей панели Data Science! Выпускник UCSD , Mark st \ u2026 https://t.co/sPNgvMvx9t","extended_tweet":{"full_text":"Just подтвержден! Марк Дердзински, Data Scientist @dexcom, присоединяется к нашей панели Data Science! Квадрат UCSD, Марк изучает данные о пациентах, коммерческих объектах и устройствах, чтобы генерировать действенные бизнес-идеи и улучшать результаты пациентов. #Dexcom #datascienceday #techsandiego #ucsd https://t.co/89ktI7jKI3","display_text_range":[0,276]}
когда я проверяю тип, он говорит ул.
для анализа я конвертировал в dict используя
a = json.loads(data)
После этого я пытаюсь проанализировать ["extended_text"] ["full_text"], чтобы получить полный твит
но я получил UnicodeError, поэтому, просмотрев несколько потоков, я обнаружил, что должен был закодировать строку, и использовал приведенный ниже код
y = y['extended_tweet']['full_text'].encode(encoding='UTF-8')
Но когда я пытаюсь напечатать (y), если full_tweet содержит ссылки, он не очищается и отображается как есть.
Итак, я планировал очистить твит с помощью приведенного ниже кода (также можно найти в Интернете #begineerlife)
URLless_string = re.sub(r'\w+:\/{2}[\d\w-]+(\.[\d\w-]+)*(?:(?:\/[^\s/]*))*', '', y)
Я получаю сообщение об ошибке
TypeError: can't use a string pattern on a bytes-like object
Пожалуйста, помогите мне решить проблему. Я не уверен, как мне разобрать чистый твит.
ПОЛНЫЙ КОД, как показано ниже
def on_data(self, data):
y = json.loads(data)
try:
y = y['extended_tweet']['full_text'].encode(encoding='UTF-8')
print(type(y))
URLless_string = re.sub(r'\w+:\/{2}[\d\w-]+(\.[\d\w-]+)*(?:(?:\/[^\s/]*))*', '', y)
print(URLless_string)
except KeyError:
y = y['text'].encode(encoding='UTF-8')
print(type(y))
URLless_string = re.sub(r'\w+:\/{2}[\d\w-]+(\.[\d\w-]+)*(?:(?:\/[^\s/]*))*', '', y)
print(URLless_string)
Метод «попробуй и ожидай» используется потому, что
В некоторых твитах нет Full_tweets, поэтому мне просто нужно полагаться на клавишу ["text"] на объекте dict.
Если бы вы могли помочь мне в доработке кода, это тоже очень помогло бы.
Заранее спасибо.