A collection of Twitter-related helper functions for python.
You can install twitwi
with pip with the following command:
pip install twitwi
Normalization functions
Formatting functions
Useful constants (under twitwi.constants)
Function taking an entire tweets payload from the v2 API and returning a list of the contained tweets normalized and structured in a way that makes further analysis of the data convenient.
from twitwi import normalize_tweets_payload_v2
# Normalizing an entire tweets payload to extract a list of tweets
normalize_tweets_payload_v2(payload)
# Normalizing an entire tweets payload to extract a list of tweets
# as well as the referenced tweets (quoted, retweeted, etc.)
normalize_tweets_payload_v2(payload, extract_referenced_tweets=True)
# Converting found dates to a chosen timezone
from pytz import timezone
paris_tz = timezone('Europe/Paris')
normalize_tweets_payload_v2(payload, locale=paris_tz)
Arguments
- payload (dict): tweets payload coming from Twitter API v2.
- locale (pytz.timezone, optional): timezone used to convert dates. If not given, will default to UTC.
- extract_referenced_tweets (bool, optional): whether to keep referenced tweets (retweeted, quoted etc.) in the output. Defaults to
False
. - collection_source *(string, optional): An optional information to add to the tweets to indicate whence you collected them.
Function transforming (i.e. mutating, so beware) a given normalized tweet into a suitable dict able to be written by a csv.DictWriter
as a row.
from twitwi import transform_tweet_into_csv_dict
# The function returns nothing, `normalized_tweet` has been mutated
transform_tweet_into_csv_dict(normalized_tweet)
Function transforming (i.e. mutating, so beware) a given normalized Twitter user into a suitable dict able to be written by a csv.DictWriter
as a row.
from twitwi import transform_user_into_csv_dict
# The function returns nothing, `normalized_user` has been mutated
transform_user_into_csv_dict(normalized_user)
Function formatting the given normalized tweet as a list able to be written by a csv.writer
as a row.
from twitwi import format_tweet_as_csv_row
row = format_tweet_as_csv_row(normalized_tweet)
Function formatting the given normalized Twitter user as a list able to be written by a csv.writer
as a row.
from twitwi import format_user_as_csv_row
row = format_user_as_csv_row(normalized_user)
List of tweet field names. Useful to declare headers with csv writers:
from twitwi.constants import TWEET_FIELDS
# Using csv.writer
w = csv.writer(f)
w.writerow(TWEET_FIELDS)
# Using csv.DictWriter
w = csv.DictWriter(f, fieldnames=TWEET_FIELDS)
w.writeheader()
from twitwi.constants import USER_FIELDS
# Using csv.writer
w = csv.writer(f)
w.writerow(USER_FIELDS)
# Using csv.DictWriter
w = csv.DictWriter(f, fieldnames=USER_FIELDS)
w.writeheader()