🟩 Pythonログ出力フォーマットの作り方|dict・for文・joinで1行ログを作る方法【初心者向け】

Python

📚 Python学習ロードマップ
(初心者→ログ設計まで体系的に学べます)
https://run-ride-code.com/python-selfstudy-roadmap/


はじめに

Pythonでデータを処理するとき、

  • count(件数)
  • sum(合計)
  • avg(平均)

など、複数の結果を扱うことがあります。

これまでの学習では

print(f"[INFO] count={count} sum={sum} avg={avg}")

のように、print()で直接ログを作ってきました。

しかし項目が増えると、

  • 書き直しが増える
  • コードが長くなる

という問題があります。

そこで今回は

複数のデータを自動的に1行ログにまとめる方法

を学習します。

今回使うデータ

まずはシンプルなデータを用意します。

count = 20
sum = 980
avg = 49

これまでのログ出力

print(f"[INFO] count={count} sum={sum} avg={avg}")

出力結果

[INFO] count=20 sum=980 avg=49

この方法でも問題ありませんが、

項目が増えるたびにコードを書き直す必要があります。


データを「ひとつの箱」にまとめる

そこで 辞書(dict) を使います。

stats = {
'count': count,
'sum': sum,
'avg': avg
}

辞書は

名前(key)と値(value)をセットで管理できるデータ構造

です。

keyvalue
count20
sum980
avg49

for文でデータを順番に取り出す

辞書の中身は for 文で確認できます。

for label in stats:
print(label, stats[label])

出力結果

count 20
sum 980
avg 49

ここでは

辞書の中のデータを1つずつ取り出しています。


ログ用の文字列を作る

次にログの部品を作ります。

parts = []for label in stats:
parts.append(f"{label}={stats[label]}")

この時点で parts の中身は次のようになります。

['count=20', 'sum=980', 'avg=49']

joinで1行のログにまとめる

次に join() を使って1行のログにまとめます。

log_line = " ".join(parts)print(f"[INFO] {log_line}")

出力結果

[INFO] count=20 sum=980 avg=49

完成コード

count = 20
sum = 980
avg = 49stats = {
'count': count,
'sum': sum,
'avg': avg
}parts = []for label in stats:
parts.append(f"{label}={stats[label]}")log_line = " ".join(parts)print(f"[INFO] {log_line}")

今日のまとめ

今回学んだポイント

  • 複数の結果は dict にまとめると扱いやすい
  • for 文で 辞書の中身を順番に処理できる
  • ログ形式は label=value が基本
  • join() を使うと 1行ログを簡単に作れる

この方法を使うと、

ログ項目が増えてもコードをほとんど変更せずに対応できます。


次のステップ

次の学習としては

  • ログレベル(INFO / WARN / ERROR)の自動判定
  • 時刻付きログの作成
  • ログ出力を関数化する

などに進むと、さらに実用的になります。


📚 Python学習ロードマップ
(初心者→ログ設計まで体系的に学べます)
https://run-ride-code.com/python-selfstudy-roadmap/



コメント

タイトルとURLをコピーしました