TinyDBとは
TinyDBはPure Pythonなドキュメント型データベース.サーバーを立てる必要が無いのが特徴で,手軽にDBライクな操作ができる点がおすすめ.個人でDBを使用する場合や試験環境ですぐに使いたい場合など,手間なく導入できるのでとにかく早い.ドキュメントはこちら.
参考サイト
http://symfoware.blog68.fc2.com/blog-entry-1830.html
http://esu-ko.hatenablog.com/entry/2016/03/01/Python%E3%81%A7mongo%E3%82%84json%E3%81%AE%E4%BB%A3%E3%82%8F%E3%82%8A%E3%81%ABtinydb%E3%82%92%E4%BD%BF%E3%81%86
導入
.py
pip install tinydb
使い方
基本的な使い方
.py
# モジュールのインポート
from tinydb import TinyDB, Query
# データベースの作成
db = TinyDB('sample.json')
# 名前と年齢に関するデータの作成
# 辞書型で挿入
db.insert({'name':'Bob', 'age':31})
db.insert({'name':'Jane', 'age':22})
# 全データの取得
db.all()
'''[{'age': 31, 'name': 'Bob'}, {'age': 22, 'name': 'Jane'}]'''
# 複数渡すとき
dic_list = [{'name':'John', 'age':25}, {'name':'Elen', 'age':40}]
db.insert_multiple(dic_list)
# ループ処理
for item in db:
print(item)
'''
{'name': 'Bob', 'age': 31}
{'name': 'Jane', 'age': 22}
{'name': 'John', 'age': 25}
{'name': 'Elen', 'age': 40}
'''
Queryオブジェクトを使用したデータの検索
.py
# Queryオブジェクトを作成
que = Query()
# 'name'=='Bob'のデータを検索
db.search(que.name == 'Bob')
'''[{'age': 31, 'name': 'Bob'}]'''
# 条件式を指定できる
# 'age'<30のデータを検索
db.search(que.age < 30)
'''[{'age': 22, 'name': 'Jane'}, {'age': 25, 'name': 'John'}]'''
# ループ処理したいとき
for item in db.search(que.age < 30):
print(item)
'''
{'name': 'Jane', 'age': 22}
{'name': 'John', 'age': 25}
'''
データの変更,削除
.py
# データの更新
# 'name'=='John'の'age'を26に変更
db.update({'age':'26'}, que.name == 'John')
# データの削除
# 'age'<30のデータを削除
db.remove(que.age < 30)
db.all()
'''[{'age': 31, 'name': 'Bob'}, {'age': 40, 'name': 'Elen'}]'''
# 全データを削除
db.purge()
db.all()
'''[]'''
テーブルの作成
.py
# テーブルの作成
table = db.table('table')
# データの挿入
table.insert(dict)
# 全データの表示
table.all()
# 全テーブルの削除
db.purge_tables()
インメモリーで使用する場合
.py
from tinydb.storages import MemoryStorage
db = TinyDB(storage = MemoryStorage)
おわり