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サービスなどもありますが、件数制限がある場合には、手元でサクサクと作れると便利ですね。