#(13:30記入)タイトル通りです。
大体半月くらい更新してなくて、まったくPythonの学習が進んでないのは恥じ入るほかない。ほら、ライブに遊びに行ったり、フォートナイト楽しかったりで、完全に夜のプライベートな時間を無為に過ごしてしまった…敵を倒すよりも、隠れて生き延びる方がより楽しいですよね、フォートナイト。
それはともかく、今日こそはちゃんとマトモにコードを書いてPythonを習得するぞい!って気持ちでもくもく会に来てます。本当にVS Code触れること自体久々で操作勘からして失ってるのは良くねーナー。
#(14:44記入)とりあえずもくもく開始
ひとまず、JSONを使用してもくもくと特定ユーザのログを取得するコードを書いてみる。
いざって時に1年分のログを吸い出すなど出来そう(やって何かするわけでもない)
ここを参考に色々進めてみよう。
#(16:37記入)とりあえずもくもくと色々やったけど
すっげぇ雑にSQlite使ってテーブルを生成してるだけになってる。あんまり芳しくない。肩こりもひどいし。
あと、急激に新しいiPad + Apple Pencilが欲しくなった。メモを適当に取るには良いデバイスなのかもなぁ(物理ペーパーで良いじゃん、と言う考え方もあるが)
なお、どのくらい雑なテーブル作成かというと、このくらい雑。
def CreateTable_():
# TWEET の値を格納するためのテーブル
query1 = '''CREATE TABLE IF NOT EXISTS TBL_TWEET
(
uniq INTEGER PRIMARY KEY,
created_at NONE,
id NONE,
id_str TEXT,
truncated NONE,
source NONE,
in_reply_to_status_id NONE,
in_reply_to_status_id_str TEXT,
in_reply_to_user_id NONE,
in_reply_to_screen_name TEXT,
geo NONE,
coordinates NONE,
place None,
contributors None,
is_quote_status None,
retweet_count INTEGER,
favorite_count INTEGER,
favorited NONE,
retweeted NONE,
possibly_sensitive NONE,
lang NONE
) '''
c = conn.cursor() #カーソルを取得
c.execute(query1) # SQLの実行
#ユーザーの情報を格納するテーブルを作成
#Tweetの Id をキーとして保存する
#Tweetを取得したときのUser情報を残すため
query2 = '''
CREATE TABLE IF NOT EXISTS TBL_USER(
uniq INTEGER PRIMARY KEY,
id INTEGER,
id_str TEXT,
name TEXT,
screen_name TEXT,
location NONE,
description TEXT,
url TEXT,
protected NONE,
followers_count INTEGER,
friends_count INTEGER,
listed_count INTEGER,
created_at NONE,
favourites_count INTEGER,
utc_offset INTEGER,
time_zone TEXT,
geo_enabled NONE,
verified NONE,
statuses_count INTEGER,
lang TEXT,
contributors_enabled NONE,
is_translator NONE,
is_translation_enabled NONE,
profile_background_color TEXT,
profile_background_image_url TEXT,
profile_background_image_url_https TEXT,
profile_background_tile NONE,
profile_image_url TEXT,
profile_image_url_https TEXT,
profile_banner_url TEXT,
profile_link_color TEXT,
profile_sidebar_border_color TEXT,
profile_sidebar_fill_color TEXT,
profile_text_color TEXT,
profile_use_background_image NONE,
has_extended_profile NONE,
default_profile NONE,
default_profile_image NONE,
following NONE,
follow_request_sent NONE,
notifications NONE,
translator_type TEXT
)
'''
c.execute(query2) # SQLの実行
conn.commit
べた書きじゃねーか!の批判は甘んじて受ける。
JSONの中身を解析しながらテーブルの列名とか取得して作らせるって手もあるかも知れなかったが、今回はスルーとしたよ。
#(16:52記入)今日の気づき
Slackは、適当に今やったことを投げつけておくことで反応を期待すれば良いのかも知れない。
というか、お仕事で使う場合、質問だったり提案だったりをチームに投げつけて、その回答を期待したりしなかったりで進めていくヤツなのかな。まぁメールよりは早いか。
俺ももっとスマートにお仕事したい。
#(17:34記入)JSON の中身をテーブルに落とし込むの無理かも知れない
取得するデータに、存在するキーと存在しないキーがあったり、リツイートデータの中にもう一つTweetのデータがあったり。
これ、ベタに取得したツイートデータをそのままテーブルに保存していくのが良いのかも知れない(Created Date と TweetのIDだけキーにして、あと残りのデータはテキストとしてNone型の「Data」列にたたき込むとか)。
暇なときにトライしてみよう。うん。