解決したいこと
Shelveモジュールについて質問が二つあります。
サンプルコードは下にあります。
1.Pythonのshelveモジュールに保存された辞書型から値を取り出したい場合はどのように書いたら取り出せますでしょうか?
2.Pythonのshelveモジュールで作成されたバイナリファイルにユーザーにinput()メゾットで入力させた値を保存して更新したいです。
例えば下記のコードで言うと辞書型のデータが保存してある変数「menubook['breakfast'] 」に"desert":"pudding"のようなデータをユーザーがinputで入れてそれを保存するにはどのようにしたら良いでしょうか?open()やwrite()メゾットの基本的な使い方は学んでおりそれを使えばできるのはわかっているのですが自分で実際にコードに書くことができませんでした。
該当するソースコード
python
1import shelve 2menubook = shelve.open('menu_data') 3 4menubook['breakfast'] = {'main':'toast', 'sub':'egg', 'drink':'milk'} 5menubook['lunch'] = {'main':'spam', 'sub':'ham', 'drink':'juice' } 6 7print(menubook['lunch']) 8 9menubook.close()
自分で試したこと
関連書籍やWEBサイトなどで調べましたが見つけることができませんでした。
追記
下記のように書き直してみたがプログラムを再度、実行すると値が保存されていなかったのでどのようにしたら保存が反映されるか教えて頂けると助かります。
python
1import shelve 2menubook = shelve.open('menu_data', writeback=True) 3 4menubookA = {'main':'toast', 'sub':'egg', 'drink':'milk'} 5 6print(menubookA) 7print(menubookA['drink']) 8 9key = input("Enter key: ") 10value = input("Enter value: ") 11 12menubookA[key] = value 13print(menubookA) #ここでは問題なくkeyとvalueが追加されている 14 15menubook.close()
よろしくお願いします。