Удаление ненужных деталей для столбца extended_tweet твиттеров в JSON / Python - PullRequest
1 голос
/ 25 февраля 2020

Я использовал скребок для твиттера, чтобы загрузить твиты о спортивном событии, которое происходило в прошлый раз. К сожалению, из-за характера исследования я не могу go вернуть назад и изменить свой скребок, так как событие больше не произойдет. Твиты разделены на несколько категорий, таких как отметка времени, дата создания и c.

Эти твиты хранятся в файле JSON, и в настоящее время я экспортирую их в pandas

Я сосредоточен на категориях text и extended_tweet в деталях каждого твита.

Некоторое время назад Twitter позволил пользователям публиковать более длинные твиты. Когда дело доходит до очистки данных в твиттере, если твит находится ниже начального (140? Я полагаю) предела символов, тогда текст всего твита отображается в текстовой категории без проблем, просто как он мне нужен для моего будущего исследования .

Однако любые твиты, превышающие ограничение на количество символов, выглядят следующим образом в категории «текст»:

@thedamon @getify I worry adding new terms add complexity and may make it harder for people to learn JavaScript. A… <url> StackOverflow не позволяет мне отображать короткий URL-адрес, который следует ниже, но по сути, как я только что сказал, это короткий твиттер-URL к полному сообщению

Как видите, текст обрывается на «...», за которым следует ссылка. Чтобы просмотреть полный текст, мне нужно взглянуть на категорию 'extended_tweet', которая затем размещает информацию следующим образом:

{'full_text': '@thedamon @getify I worry adding new terms add complexity and may make it harder for people to learn JavaScript. A sort function is a function you send to sort. Learning a new acronym to abstract that adds unnecessary complexity.', 'display_text_range': [18, 229], 'entities': {'hashtags': [], 'urls': [], 'user_mentions': [{'screen_name': 'thedamon', 'name': 'Damon Muma', 'id': 29938474, 'id_str': '29938474', 'indices': [0, 9]}, {'screen_name': 'getify', 'name': 'getify', 'id': 16686076, 'id_str': '16686076', 'indices': [10, 17]}], 'symbols': []}}

Как вы можете видите, это намного больше деталей, чем просто текст.

В настоящее время я работаю с Python и пытаюсь обернуть мою голову в регулярное выражение. Я мог бы легко нарезать строку из index [i] в ​​index [j], но, поскольку все твиты имеют разную длину, мне нужно убедиться, что я нарезал твит с точки, после которой он начинается, 'full_text': && 'display_text_range'

Я не прошу, чтобы кто-то сделал мою домашнюю работу за меня, но я застрял на этой проблеме некоторое время, и то, что я сначала думал, что это будет легко, оказалось намного сложнее, чем я ожидал .

Кто-нибудь получил какие-либо указатели или предложения, которые я мог бы изучить, которые могли бы помочь мне решить проблему самостоятельно?

Спасибо

1 Ответ

0 голосов
/ 25 февраля 2020

Почему бы не проанализировать JSON, чтобы получить full_text свойство?

import json

data = '''
{"full_text": "@thedamon @getify I worry adding new terms add complexity and may make it harder for people to learn JavaScript. A sort function is a function you send to sort. Learning a new acronym to abstract that adds unnecessary complexity.", "display_text_range": [18, 229], "entities": {"hashtags": [], "urls": [], "user_mentions": [{"screen_name": "thedamon", "name": "Damon Muma", "id": 29938474, "id_str": "29938474", "indices": [0, 9]}, {"screen_name": "getify", "name": "getify", "id": 16686076, "id_str": "16686076", "indices": [10, 17]}], "symbols": []}}'''

parsed_data = json.loads(data)
print(parsed_data['full_text']) # prints full tweet '@thedamon @getify I worry .... unnecessary complexity.'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...