LoginSignup
6
2

More than 5 years have passed since last update.

re:dashでよく使うPythonの基礎まとめ

Last updated at Posted at 2017-12-04

こんにちは、株式会社オズビジョン@seungyeon-kimです。

最近、データの集計のためre:dashをよく使っていますが、取得したデータからほしい情報だけ取り出したい時や、入力値を加工してデータを取得したい時があります。
その時、有用に使えるのが「Python」です。

実は私、Php以外は大学時代にJavaとC、遊びでrubyをちょっと触ったぐらいで、Pythonは初めてです。(rubyと使い方は似ていますが)
ですので、re:dashで処理の追加が必要な時、Pythonの使い方の調べにかなり時間がかかってしまいます。
その手間を減らすため、今回は自分がre:dashでよく使っているPythonの使い方を共有したいと思います。

クエリ関連

クエリにバインディングがしたい

query = '''SELECT * FROM TABLENAME WHERE COLUMN = ?'''

値の特定はできないが、データを渡してクエリを回したい時、主に使う方法が下記の二つです。

replace()を使って、文字を特定して置換する

# 文字列.replace(置換される文字, 置換する文字)
query.replace('?', データ)

reモジュールのsub()で、正規表現を使って置換する

import re
# re.sub(正規表現, 置換する文字列, 置換される文字列 [, 置換回数])
result = re.sub('\?', データ, query)

クエリ結果が0件かどうかを確認したい

len()を使って、データの長さを確認

データの長さを返すlen()を使います。
len()でデータの長さを取得して、長さが0かどうかを判断して処理を分岐します。

data = ['あ', 'い', 'う', 'え', 'お']
len(data) # 結果5

if notで、データがあるかどうかを確認

※ 追記 (2017/12/04 22:26)
@shiracamusさんよりアドバイスいただきました
0や空リストなどはFalseとして判定されます。

if not data:

入力値関連

カンマ区切りの複数データを配列にしたい

re:dashの入力フォームから入力してもらった値がカンマ区切りの複数のデータの場合、配列に作ってから処理をしたい時、ありますね。
その場合は、split()を使って、文字列を分割します。

text = 'おはよう, ございます'
# 文字列.split(切り分けする文字)
text.split(',') # 結果 => ['おやよう', 'ございます']

入力値の一部を切り出したい

特に日付データから、年と月を切り出したい!という場合、よく使います。

date = '20170911'
year, month, day = date[0:4], date[4:6], date[6:8]
>>> year
'2017'
>>> month
'09'
>>> day
'11'

おわりに

普段はPhpをメインで使っていまして、Php以外の言語はあまり触る機会があまりありませんでした。
そのため、最近re:dashで集計をしながら、ちょっとずつPythonを触っていて、やはり新しいことを学ぶのは楽しいな~と思っています。
re:dashも、pythonも、使い始めたばかりなので、Pythonもre:dashもガリガリ使っている方、またはもっといいやり方知っているよ!という方いらっしゃいましたら、ぜひコメントください。
次回の私の投稿は、Pythonまとめver2を投稿しますので、楽しみにしてください。


次の更新は、オズビジョン入社1年目で、大活躍中のENGから「新卒ENGが出くわした頻出IT用語集」を共有するらしいです!IT用語は、覚えても覚えても新しいものがどんどん出てくるから、ENGはもちろんIT系に働く人なら、常に勉強すべきものですよね。
すごく有意義な内容になると思いますので、ぜひ楽しみにして下さい!

おまけ

re:dashでPythonを使うコツとPythonの基礎まとめも共有します。
すごくわかりやすいので、ぜひ見てください。

6
2
4

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
6
2