PythonのpeeweeモジュールとFakerモジュールを使用して、インメモリのデータベースに日本の偽住所と名前を登録し、表示させてみます。
今回はpeeweeとFakerを用います。この2つのライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows11)
■peeweeとFakerを使用しインメモリのデータベースに日本の偽住所と名前を登録し、表示させる
では、早速peeweeとFakerを使用しインメモリのデータベースに日本の偽住所と名前を登録し、表示させるスクリプトを書いていきます。
■コード
from peewee import SqliteDatabase, Model, CharField from faker import Faker # インメモリデータベースの作成 database = SqliteDatabase(":memory:") # モデルの定義 class Person(Model): name = CharField() address = CharField() class Meta: database = database # テーブルの作成 database.create_tables([Person]) # Fakerモジュールの初期化 fake = Faker('ja_JP') # データの生成と登録 for _ in range(10): name = fake.name() address = fake.address() person = Person.create(name=name, address=address) # 登録したデータの表示 for person in Person.select(): print(person.name, person.address)
まずはpeeweeモジュールからSqliteDatabase、Model、CharFieldを、fakerモジュールからFakerをインポートします。
次に、インメモリデータベースを作成します。「:memory:」という特殊なパスを指定し、インメモリ上にデータベースを作成します。これにより、データベースがプログラムの実行終了時に破棄されます。
次に、peeweeのModelを継承してPersonクラスを定義します。Personクラスは、データベースのテーブルに対応します。今回はnameとaddressという2つのフィールドをCharFieldとして定義し、Metaクラス内でデータベースに接続するための設定を行っています。
その後、「database.create_tables([Person])」を呼び出して、データベースにテーブルを作成します。
次に、Fakerモジュールを初期化します。Fakerクラスのコンストラクタに「’ja_JP’」を渡すことで、日本の偽データを生成するように設定します。
その後、forループを使用して10回の繰り返しを行い、偽の名前と住所を生成してデータベースに登録します。fake.name()を使用してランダムな日本の名前を生成し、fake.address()を使用してランダムな住所を生成します。Person.create()を使用して、生成された名前と住所を持つ新しいPersonレコードをデータベースに作成します。
最後に、forループを使用して、データベース内の全てのPersonレコードを取得し、名前と住所をprint()で表示します。
■検証・実行
今回書いたスクリプトを「f_data.py」という名前でPythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみるとpeeweeとFakerを用いてデータベースに登録した偽住所と名前をprint()で表示させることができました。
コメント