見出し画像

【Python】 ライブラリ faker でダミーデータを作成してみた|1日1ハンズオン Day 48

こんにちは、ぽめら です。
本記事は1日1ハンズオン企画、第48回です!

引き続き過去回(第46回)で着手したプログラムについて、AWS連携用のブラウザ仕様を変えるハンズオンにチャレンジします🧙
今回はPython側で、ダミーデータの作成をおこないます。



1.はじめに

前回はフロント側で入力項目を増やす仕様を実装してみました。

改修を加えている元プログラムは過去回(第46回)の内容です。

今回はAWSアップ時の検証でバリエーションがないことで寂しさを感じたため、ダミーデータを作成するコードを書いていきたいと思います。

では、レッツハンズオン!


2.ライブラリ faker でダミーデータを作ってみた

実データがあれば特に考えもしないこの話題ですが、開発工程ではダミーデータがないと検証ができません。とはいえ、手動でダミーデータを作るのは面倒なのでプログラム書きました🤖


2-1.faker とは

fakerは、テスト用のダミーデータを自動生成するためのライブラリ です。

(Laravelでも同名のライブラリがあり、私も過去に使用した記憶があります。同じものなんだろうか…?)

名前・住所・メールアドレス・日付など、実際に存在しそうなデータを簡単に作成できます。

from faker import Faker

faker = Faker("ja_JP")  # 日本語対応
print(faker.name())     # → 例:田中 太郎
print(faker.address())  # → 例:東京都新宿区西新宿2丁目8番1号

手作業でデータを入力することなく、リアルなテストデータを自動で生成できるので便利ですね✨


2-2.コーディング

はじめは「動けばいいからなー🎅」と思ってfakerを使わないで実装しようとしたんです。それが下記。リストに名前を直接書き込んでみた形式です。

<generate_dummy.py>
・ダミーデータ生成(名前リストを指定)

# -------------------------------
# Day48:ダミーデータ生成(名前リストを指定)
# -------------------------------
import json
import random
import datetime

names = ["田中", "佐藤", "鈴木", "高橋", "伊藤"]
records = []

for i in range(100):
    record = {
        "id": i + 1,
        "name": random.choice(names),
        "score": random.randint(20, 100),
        "timestamp": datetime.datetime.now().isoformat()
    }
    records.append(record)

with open("user_data.json", "w", encoding="utf-8") as f:
    json.dump(records, f, ensure_ascii=False, indent=2)

print("✅ 100件のダミーデータを生成しました。")

if __name__ == "__main__":
    generate_dummy_data()

でも、「ダミーデータ作成のライブラリくらいあるだろなー」からの、「Pythonで触ったことがないなー」からの、「じゃあせっかくだし触ってみよ🤗」という精神で実装してみます。

<generate_dummy.py>
・faker 使用

# -------------------------------
# Day48:ダミーデータ生成(faker使用)
# -------------------------------
from faker import Faker
import json
import random
from datetime import datetime

# 日本語ロケールでfakerを初期化
faker = Faker("ja_JP")

def generate_dummy_data():
    records = []

    for i in range(100):
        record = {
            "id": i + 1,
            "name": faker.last_name(),              # fakerで名前指定
            "score": random.randint(20, 100),
            "timestamp": datetime.now().isoformat()
        }
        records.append(record)

    # JSONファイルとして保存
    with open("user_data.json", "w", encoding="utf-8") as f:
        json.dump(records, f, ensure_ascii=False, indent=2)

    print("✅ 100件のダミーデータを生成しました。")

if __name__ == "__main__":
    generate_dummy_data()

2−3.実行

faker は事前インストールが必要なのでお忘れなく。

事前準備:

pip install faker

実行:

python generate_dummy.py

結果:

成功したコンソールメッセージ☝️
100件の適当な苗字で入力に成功✌️

できました!
苗字を考えたり、名前を考えたり。はたまた住所を考えたりするのって地味に面倒ですよね。それを解決できたので満足です🫡


3.まとめ

今回はライブラリ faker を使用して、リアルなダミーデータの作成に挑戦しました。テストとはいえ、やはり適当すぎるデータだとテスト感がないですからね…。

というわけで今日はここまで!
ではまた明日👋


4.参考リンク

・Faker ドキュメント

・Pythonでもfakerあるのか!と気づきを得たdevelopersIO

・Faker-Python GitHub


いいなと思ったら応援しよう!