ChatGPTに100万件のダミー会員情報を作成してもらった

ChatGPTに100万件のダミー会員情報を作成するPythonコードを書いてもらいました。とりあえず基本的な項目だけですが。

 

指示文(プロンプト):

以下のカラムでダミーのデータ100万件を生成し、データベースに保存するPythonコードを作成してください。

・氏名(漢字)
・氏名(カタカナ)
・生年月日(YYYYMMDD)
・性別(男|女|その他)
・メールアドレス
・電話番号
・郵便番号号
・住所

 

回答:

以下は、PythonでSQLite3を使用してダミーデータを生成し、データベースに保存するサンプルコードです。氏名、生年月日、メールアドレス、電話番号、住所のデータは、Fakerライブラリを使用して生成しています。住所のデータは、日本の都道府県・市区町村のリストからランダムに選んでいます。


import sqlite3
from faker import Faker
import random
import time

# データベース接続の設定
conn = sqlite3.connect('dummy_data.db')
c = conn.cursor()

# テーブル作成
c.execute('''CREATE TABLE IF NOT EXISTS dummy_data
             (id INTEGER PRIMARY KEY AUTOINCREMENT,
             name_kanji TEXT,
             name_katakana TEXT,
             birthdate TEXT,
             gender TEXT,
             email TEXT,
             phone TEXT,
             zipcode TEXT,
             prefecture TEXT)''')

# Fakerライブラリのインスタンス生成
fake = Faker('ja_JP')

# ダミーデータの生成
start_time = time.time()
for i in range(1000000):
    name_kanji = fake.name()
    name_katakana = fake.name()
    birthdate = fake.date_of_birth(minimum_age=18, maximum_age=70).strftime('%Y%m%d')
    gender = random.choice(['男', '女', 'その他'])
    email = fake.email()
    phone = fake.phone_number()
    zipcode = fake.zipcode()
    address = fake.address().split()
    prefecture = address[0]
    
    # データベースに保存
    c.execute("INSERT INTO dummy_data (name_kanji, name_katakana, birthdate, gender, email, phone, zipcode, prefecture) VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
              (name_kanji, name_katakana, birthdate, gender, email, phone, zipcode, prefecture))
    
    # 10000件ごとにコミット
    if i % 10000 == 0:
        conn.commit()

# コミットして接続を終了
conn.commit()
conn.close()

# 経過時間の表示
elapsed_time = time.time() - start_time
print(f'elapsed_time:{elapsed_time:.3f} sec')
    
結果:

以下のように成功しました。Fakerライブラリは事前にインストールしています。

処理にかかった時間も最後に表示してくれていますが、elapsed_time:109.482 sec でした。

ダミーデータを細かく指定して生成してくれるWebサービスなどもありますが、件数制限がある場合には、手元でサクサクと作れると便利ですね。