Pythonプログラミングにチャレンジ-Chatworkログ取得プログラム

Scratchを一通りやってきた元SE(プログラミング経験なし)が、大人の(?)プログラミングにチャレンジするシリーズです。前回はこちら

さて、今回はPythonです。
実は、PHPで前回の記事のプログラムを作っている途中で、出力させるjson(※後述)の整形がうまくできなくて、「やっぱりPythonで作ろー」と思い立ち、途中でPythonに切り替えて作りはじました。

Pythonにはjsonを取り扱うモジュールがあって、それをインポートすることですごくプログラミングが楽になるんですよね。
調子に乗ってPythonで作ったプログラムを公開します。

目次

1. できたプログラムはこちら

パイソンでチャットワークのログ取得するプログラムはこちらです。

import requests
import json

headers = {
    'X-ChatWorkToken': '{Chatworkから取得したAPIトークンをいれる}',
}

#cURLのオプション設定 {roomId}の箇所には取得したルームIDを入れる
response = requests.get('https://api.chatwork.com/v2/rooms/{roomId}/messages?force=0', headers=headers)
print(response.status_code)

if response.status_code==200:
    data = response.json()
    json_file = open('chat_log.json', 'a')
    json.dump(data, json_file, indent=2, ensure_ascii=False)
    with open('chat_log.json', 'a') as f:
        f.write('\n')

とこんな感じ。PHPに比べると結構シンプルだと思います。
こちらは結構楽勝でした。が、結局レンタルサーバー上のPythonにjsonモジュールがなく、インストールの手間も結構大変だったのでPythonを使うのは諦めて、PHPで作り直しました。

Pythonは子ども向けの解説本も出ているので、今後、チャレンジしたいプログラミング言語の一つです。

2. jsonって何?

jsonについて解説をしようと思います。

jsonとは「テキストで書かれた、データのフォーマット」のことです。
今回のチャットワークのデータはjson形式になっていて、見やすくするのにちょっと苦労しました。

▼チャットワークのデータの例(IDやURL等は実在しないものに置き換えてあります)

[
  {
    "message_id": "123456789123456789",
    "account": {
      "account_id": 12345678,
      "name": "山田太郎",
      "avatar_image_url": "https://hogehoge.chatwork.com/avatar/1234/12345678.rsz.png"
    },
    "body": "こんにちは!",
    "send_time": 1580348746,
    "update_time": 0
  }
]
[
  {
    "message_id": "123456789123456790",
    "account": {
      "account_id": 12345678,
      "name": "山田太郎",
      "avatar_image_url": "https://hogehoge.chatwork.com/avatar/1234/12345678.rsz.png"
    },
    "body": "お元気ですか。",
    "send_time": 1580362970,
    "update_time": 0
  }
]

最近ではjson形式でデータを取り扱うことも多いようです。
Pythonだとjsonの中の特定の要素だけを取り出したりすることが非常に簡単です。PHPだとちょっと大変!

今回、PHPとPythonで同じプログラムを作成して見ましたが、PHPのいいところ、Pythonのいいところ色々わかって非常に勉強になりました。
子どもがプログラミングに興味を持っているなら・・・もちろんどちらでもいいのですが、どちらかといえばPythonをおすすめしたいかなー、と思ったのでした。

この記事を書いた人

目次