LoginSignup
9
5

More than 5 years have passed since last update.

Slackのログ(JSON形式)をCSVに変換させた

Posted at

Slackのログ(JSON形式)をCSVに変換した

やりたいこと

  • Slackの活動数やユーザー間のつながりを分析したい
    • 発言数、リアクション数、リアクション・被リアクション関係、メンション関係など
  • データはJSONの階層形式なので、分析しやすいようにCSVに変換する

DLできるデータ

  • 詳しくは Slack からエクスポートしたデータの読み方 参照
  • Slackのログはパブリックチャンネルであれば全期間出せる
    • 設定と権限>データのインポート/エクスポート でいける
  • ログ
    • channnel.json:チャンネル一覧
    • users.json:ユーザー一覧
    • チャンネル名フォルダ下にログが存在する日付ごとのファイルがある
      • 2018-01-01.json
      • 2018-01-02.json

やりたいことをもとに見たいデータの形を考える

  • 今回は汎用的に分析できるように、RDBライクなデータにする
    • チャンネル一覧
    • ユーザー一覧
    • メッセージ一覧
    • リアクション一覧:リアクションされたユーザー、リアクションしたユーザー、絵文字
    • メンション一覧:メンションしたユーザー、メンション先ユーザー
  • リアクション、メンションはメッセージと1:N関係

出力するとこんな感じ

メッセージ

channel_id talk_id talk_user text
C5XXXXXXX XX1 U9XXXXXXX <@U8YYYYYYY>こんにちは
C5XXXXXXX XX2 U8YYYYYYY 帰りたい
C5XXXXXXX XX3 U9XXXXXXX しごおわ

リアクション

channel_id talk_id talk_user reaction_user emoji
C5XXXXXXX XX1 U9XXXXXXX U8YYYYYYY ok_woman
C5XXXXXXX XX1 U9XXXXXXX U7ZZZZZZZ iine
C5XXXXXXX XX2 U8YYYYYYY U9XXXXXXX wakaru
C5XXXXXXX XX2 U9XXXXXXX U7ZZZZZZZ otukare

メンション

channel_id talk_id talk_user mention_user
C5XXXXXXX XX1 U9XXXXXXX U8YYYYYYY

こうしておくことで人気絵文字とかリアクション・被リアクション関係、メンション・被メンション関係などを分析しやすくなる!

ソースコード

Pythonで作ったぞい
https://github.com/yakipudding/slack-analytics

9
5
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
9
5