今回は短いtipsです。 MySQLにデータをinsertする際、レコード作成日時等に現在の日時を指定することがよくあります。 カラムのデフォルト値にCURRENT_TIMESTAMPを設定したり、sqlでnow()関数...
CATEGORY TIPS
環境変数を取得して環境毎に設定を切り替える os.environ
ある程度の規模のシステムを開発する場合、アプリケーションはローカル、開発、ステージング、本番など複数の環境で動作することになります。同じlinux環境でもDBの接続先やメールの宛先は環境ごとに変える必要が出てくると思いま...
文字列のゼロパディング(ゼロ埋め)
なんらかのIDやコードを採番する際、桁数を合わせるため整数の文字列に対してゼロパディング(ゼロ埋め)をしたい場合があるのではないでしょうか?pythonには色々な方法が用意されています。 ゼロパディング printf形式...
スリープする time.sleep
スクレイピングでインターバルを取る等、実行中の処理を一時的にスリープしたい場合があります。以前ご紹介した標準モジュールのtimeには、時刻データへのアクセス以外にスリープ機能があります。 引数に秒を指定します。小数点の指...
あまり良くない書き方 その3 getter/setter
他のオブジェクト指向プログラム言語、特にJavaようにカプセル化を是とする言語をメインで経験された方は、クラスのメンバにアクセスするためのgetter、setterメソッドを実装してしまいがちですが、pythonではどの...
あまり良くない書き方 その2 関数外の長い処理
ある程度プログラムを書ける人であればプログラムの規模に応じて適切な単位で関数、クラス、モジュールを分割しますが、そんな人でも分析バッチや移行バッチのように使い捨てでプログラムを作成する場合、ついつい長い処理の塊のスクリプ...
あまり良くない書き方 その1 変数名
個人的に、コードはどう書こうが期間内に目的が達成できればそれで良いと考えているのですが、あまりにも考えずに書くと色々思わぬトラブルに見舞われてしまう場合があります。 まずはクイズからです。以下のサンプルコードは実行すると...
リストをカンマ区切りの文字列に変換する
joinメソッドmap関数+str関数 データ分析時、途中結果が格納されたlistをCSVやTSVでダンプしたい、という場合がよくあります。 listの要素が文字列だけの場合 文字列だけの場合は以前学習したjoinメソッ...
URLからドメイン名を抽出する

urlparse URLをパースする 仕事でURLのリストをドメインごとに集計するために使った方法を紹介します。以下のプログラムは、指定されたURLについて標準モジュールのurlparseを使用した後、フォーマットするこ...
OrderedDict 辞書型で順序を保つ方法(Python3.5以前)
この記事を書いた時点、Python3.5では辞書型は順序を保たなかったのですが、標準Python(CPython)では3.6から順序が保たれるようになりました。また、その他の実装のPythonでも3.7以降順序が保たれる...