LoginSignup
0

More than 5 years have passed since last update.

今日はSyonan.pyのもくもく会に来ています

Last updated at Posted at 2018-06-24

(13:30記入)タイトル通りです。

大体半月くらい更新してなくて、まったくPythonの学習が進んでないのは恥じ入るほかない。ほら、ライブに遊びに行ったり、フォートナイト楽しかったりで、完全に夜のプライベートな時間を無為に過ごしてしまった…敵を倒すよりも、隠れて生き延びる方がより楽しいですよね、フォートナイト。

それはともかく、今日こそはちゃんとマトモにコードを書いてPythonを習得するぞい!って気持ちでもくもく会に来てます。本当にVS Code触れること自体久々で操作勘からして失ってるのは良くねーナー。

(14:44記入)とりあえずもくもく開始

ひとまず、JSONを使用してもくもくと特定ユーザのログを取得するコードを書いてみる。
いざって時に1年分のログを吸い出すなど出来そう(やって何かするわけでもない)
ここを参考に色々進めてみよう。

(16:37記入)とりあえずもくもくと色々やったけど

すっげぇ雑にSQlite使ってテーブルを生成してるだけになってる。あんまり芳しくない。肩こりもひどいし。
あと、急激に新しいiPad + Apple Pencilが欲しくなった。メモを適当に取るには良いデバイスなのかもなぁ(物理ペーパーで良いじゃん、と言う考え方もあるが)

なお、どのくらい雑なテーブル作成かというと、このくらい雑。

雑テーブル作成.rb
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」列にたたき込むとか)。

暇なときにトライしてみよう。うん。

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
0