Pythonでshelveを用いてデータベース内で指定されたキーに対応する値にアクセスし値を出力してみます。なお、この記事は「Pythonでshelveを用いてデータベースを作成し値を保存する」の続きとなります。
今回はshelveを用います。shelveモジュールは、Pythonの標準ライブラリですので、事前にインストールする必要はありません。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■shelveを用いてデータベース内で指定されたキーに対応する値にアクセスする
では、早速shelveを用いてデータベース内で指定されたキーに対応する値にアクセスし値を出力するスクリプトを書いていきます。
■コード
import shelve sh = shelve.open("test_db") sh['name'] = "田中" print(sh['name']) sh.close()
まずはimportでshelveモジュールを呼び出します。その後sh変数を定義し、その中でshelve.open()を持ちます。括弧内には引数,パラメータとして基礎となるデータベースのファイルを渡します。今回は新規で作成するため、「test_db」を渡します。これで自動的にデータベースのファイルが作成されます。なお、デフォルトでは、基礎となるデータベースのファイルは読み取りおよび書き込み用に開かれます。
基礎となるデータベースのファイルを設定後、sh変数に対して、角括弧”[ ]”を持ちます。これでデータベース内に格納するためのキーを設定します。今回はキーを「name」とします。その後、イコール”=”を用いて、キーとペアの値を設定します。今回の値は「田中」とします。これで基礎となるデータベースのファイル内にハッシュテーブル形成で値が保存されました。
保存後、print()を用います。括弧内には、sh変数を記述し、その後にデータベース内に設定したキーである「name」を角括弧”[ ]”を用いて記述し渡します。これで指定されたキーに対応する値にアクセスし返された値をprint()で出力することができます。
最後にsh変数に対してclose()を用います。これで基礎となるデータベースのファイルを閉じます。
■実行・検証
このスクリプトを「s_db_value.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみると、データベース内に設定したキーに対応している値にアクセスし、値を出力させることができました。
■get()を用いて指定されたキーに対応する値にアクセスする
出力後、get()を用いても、指定されたキーに対応する値にアクセスすることができますので、やってみます。
■コード
import shelve sh = shelve.open("test_db") sh['name'] = "田中" print(sh.get('name')) sh.close()
■実行・検証
このスクリプトを「s_db_value_2.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみると、get()を用いても、指定されたキーに対応する値にアクセスし、値を出力させることができることを確認できました。
なお、今回get()を用いる、もしくはそれ以外の方法で、指定されたキーに対応する値にアクセスしてみましたが、値に日本語を設定しても、文字化けせずに出力されることも確認できました。
コメント