Python 標準ライブラリ shelve 辞書永続化
Publish date: 2021-08-06
Pythonのライブラリshelve(シェルヴ・棚)を使うと、 Pythonのインスタンスを辞書的に保持することができる。
概要
以下の例ではshelve.openで指定したディレクトリ内に永続化した情報のファイルが保持される。
shelve.open(filename, flag=‘c’, protocol=None, writeback=False)
import shelve
with shelve.open('./db/file') as db:
db['one'] = 1
db['two'] = 2
db['three'] = 3
print(list(db.keys())) # => ['one', 'two', 'three']
print(list(db.values())) # => [1, 2, 3]
print(list(db.items())) # => [('one', 1), ('two', 2), ('three', 3)]
print(dict(db.dict)) # = > {b'one': b'\x80\x03K\x01.', b'two': b'\x80\x03K\x02.', b'three': b'\x80\x03K\x03.'}
print(db.get('two')) # => 2
with shelve.open('./db/file') as db:
print(list(db.items())) # => [('one', 1), ('two', 2), ('three', 3)]