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をおすすめしたいかなー、と思ったのでした。