1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

40代おっさんの手習いで始めるPython(2018/05/21編)其の四

Posted at

今回はPythonとも言いきれないが、JSON使って入手したツイッターのデータ、こんな形してたのね
(以下は @anisamaさんのモノを一つ取り出したデータ )

JSONで取得したTweetデータ(解析)
created_at:Mon May 14 11:27:17 +0000 2018
id:995988916921483264
id_str:995988916921483264
text:【アニサマ2018テーマソングイベント】6/23(土)、タワレコ渋谷店にて「Stand by…MUSIC!!!」リリースイベント開催決定!出演:オーイシマサヨシ、towana(fhána)、内田彩、亜咲花によるスペシャルトーク&ミ… https://t.co/42mo4fWJPc
truncated:True
entities:{'hashtags': [], 'symbols': [], 'user_mentions': [], 'urls': [{'url': 'https://t.co/42mo4fWJPc', 'expanded_url': 'https://twitter.com/i/web/status/995988916921483264', 'display_url': 'twitter.com/i/web/status/9…', 'indices': [117, 140]}]}
metadata:{'iso_language_code': 'ja', 'result_type': 'recent'}
source:<a href="http://twitter.com" rel="nofollow">Twitter Web Client</a>
in_reply_to_status_id:None
in_reply_to_status_id_str:None
in_reply_to_user_id:None
in_reply_to_user_id_str:None
in_reply_to_screen_name:None
user:{'id': 256906707, 'id_str': '256906707', 'name': 'AnimeloSummerLive', 'screen_name': 'anisama', 'location': '', 'description': 'Animelo Summer Live 公式アカウントです。アニサマ2018 "OK!"チケット最速先行抽選予約中。アニサマ2017-THE CARD- Blu-ray Disc発売中
!', 'url': 'https://t.co/pPDsUQKqE0', 'entities': {'url': {'urls': [{'url': 'https://t.co/pPDsUQKqE0', 'expanded_url': 'https://anisama.tv/', 'display_url': 'anisama.tv', 'indices': [0, 23]}]}, 'description': {'urls': []}}, 'protected': False, 'followers_count': 129214, 'friends_count': 377, 'listed_count': 2198, 'created_at': 'Thu Feb 24 09:27:34 +0000 2011', 'favourites_count': 0, 'utc_offset': 32400, 'time_zone': 'Tokyo', 'geo_enabled': False, 'verified': True, 'statuses_count': 6579, 'lang': 'ja', 'contributors_enabled': False, 'is_translator': False, 'is_translation_enabled': False, 'profile_background_color': '000000', 'profile_background_image_url': 'http://abs.twimg.com/images/themes/theme1/bg.png', 'profile_background_image_url_https': 'https://abs.twimg.com/images/themes/theme1/bg.png', 'profile_background_tile': True, 'profile_image_url': 'http://pbs.twimg.com/profile_images/977395390344454144/w7FLdJm__normal.jpg', 'profile_image_url_https': 'https://pbs.twimg.com/profile_images/977395390344454144/w7FLdJm__normal.jpg', 'profile_banner_url': 'https://pbs.twimg.com/profile_banners/256906707/1521864218', 'profile_link_color': 'FF691F', 'profile_sidebar_border_color': 'FFFFFF', 'profile_sidebar_fill_color': 'EEEEEE', 'profile_text_color': '333333', 'profile_use_background_image': True, 'has_extended_profile': False, 'default_profile': False, 'default_profile_image': False, 'following': True, 'follow_request_sent': False, 'notifications': False, 'translator_type': 'regular'}
geo:None
coordinates:None
place:None
contributors:None
is_quote_status:False
retweet_count:647
favorite_count:1194
favorited:False
retweeted:False
possibly_sensitive:False
lang:ja

Tweetだけ取りたい場合は、text を以下のように取得する

JSONのデータ取得サンプル
import json

url = 'https://api.twitter.com/1.1/search/tweets.json'
req = twitter.get(url, params=params)

tweets = json.loads(req.text)
result = []
#jsonから取得したTweetの束を、これで個々のツイートデータとして配列に格納する
result = tweets['statuses'] 

#ツイートの文面だけ欲しい場合
text = result[0]['text']
#ユーザー名が欲しい場合
text = result[0]['user']['name']
#アカウント名が欲しい場合
text = result[0]['user']['screen_name']

JSON の詳細はこれを見てもらうとしても、おおむね連想配列とかコレクションに近い取り回しかな、と。
この辺も把握すればいろいろやれそう。

データベースに生データを入れて、そのうえで解析して必要なデータだけ正規化して別のテーブルに叩き込めば、後で解析がはかどりそうだしちょっとそれ考えてみるかな。特定の検索キーで検索した結果を10分おきにdbに溜めていくような仕組み。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?