
66
3 章 Python におけるデータの読み書き
with db as tx: #
❶
for w in nobel_winners:
tx['winners'].insert(w)
❶
with
文を使ってトランザクション
tx
がデータベースにコミットされることを保証する。
すべてがうまくいっていることを確認しましょう。
list(db['winners'].find())
Out:
[OrderedDict([(u'id', 1), (u'name', u'Albert Einstein'),
(u'category', u'Physics'), (u'year', 1921), (u'nationality',
u'Swiss'), (u'sex', u'male')]),
...
]
受賞者は正しく挿入され、
OrderedDict
によって挿入順が維持されています。
dataset
は基本的な
SQL
ベースの操作(特に処理や可視化するデータの取得)に最適です。さら
に高度な操作では、
query
メソッドを使って
SQLAlchemy
のコア
API
に落とし込めます。
freeze
メソッドは便利なだけではなく、データの可視化を初めて行う人にとっても大きな恩恵
をもたらします。
freeze
は
SQL
クエリの結果を取り、
JSON
や
CSV
ファイルに変換します。こ
れは、
JavaScript/D3
でデータを操作するのに便利です。
winners = db['winners'].find()
dataset.freeze(winners, ...