前提・実現したいこと
プログラミング初心者です。調べてもよくわからなかったので質問させていただきます。
twitter APIを使用して取得したデータを扱うための関数を作ろうとしています。
集めたデータはtweets_dateという名のリストに格納しており、要素の数は200です。また、要素1つの要素毎に、['created_at', 'id', 'id_str', 'text', 'truncated', 'entities', 'metadata', 'source', 'in_reply_to_status_id', 'in_reply_to_status_id_str', 'in_reply_to_user_id', 'in_reply_to_user_id_str', 'in_reply_to_screen_name', 'user', 'geo', 'coordinates', 'place', 'contributors', 'is_quote_status', 'retweet_count', 'favorite_count', 'favorited', 'retweeted', 'possibly_sensitive', 'lang']のデータが含まれています。その中でもツイート内容は'text':の後に続いて入力されています。
プライバシーの問題などもありますので詳しくは書けませんが、例としてはtweets_date[0]には
{'contributors': None, 'coordinates': None, 'created_at': 'Fri Dec 25 05:14:16 +0000 2020', 'entities': {'hashtags': [], 'symbols': [],......'text': 'ツイート内容', .......'utc_offset': None, 'verified': False}}
といった風にデータが格納されています。
私はツイートのテキストが50文字未満の場合はTrueを返し、それ以外の場合はFalseを返す関数を作りたいです。そして、その関数をリスト内の全ての関数に適応させ、ツイートの文字列の長さが50文字以下のツイートを排除し、新しいリストに格納したいです。
発生している問題・エラーメッセージ
新しいリストの中身が元のリストの[0]のみになってしまう。
該当のソースコード
python
1def short_tweets(tweets_date): 2 3 for short_tweet in tweets_date: 4 len_text = int(len(short_tweet['text'])) 5 if len_text >= 50: 6 return True 7 else: 8 False 9 10tweets_filtered = short_tweets(tweets_date)
試したこと
スライスを使用ししようとしたらオブジェクトエラーが発生した為、やめました。
補足情報(FW/ツールのバージョンなど)
Python3
jupyterでコードを書いています。
あなたの回答
tips
プレビュー