某データをmongodbへ格納

前々からやろうと思っていたタスクを実行。561名の某データがエクセルで提供されているんですが、これを適当なDBへ投入。
エクセルでも相当なことはできるんですが、やっぱり小回りを効かせたり、スクリプトから有効利用したりするにはDBにデータを突っ込むのが吉。ってことで今日実施しました。

CSVデータを準備

エクセルのままだとどうしようもないので、CSVへ変換。

投入先のDB何にしようかな

DBを何にしようかと数秒間思案してmongodbにしました。ここからスキーマ変えたりするだろうし、まぁ半分は趣味ですね。
pythonとの親和性が高いのもポイント。投入したり検索して加工したりするのがホントに楽なんですよ。

CSVデータをmongodbへ投入

CSVデータの一行目にタイトルがあります。こんな形式ですね。

氏名,電話番号,メールアドレス
hoge,03-9999-9999,hoge@exeample.com

CSVデータの一行目をsplitしてタイトルをリストへ投入。二行目からcsv.DictReaderでデータを読み込み、そのままinsertする。
スクリプトはこんな感じ。

#!/usr/bin/python
# -*- coding:utf-8 -*-

import csv
import pymongo

conn = pymongo.Connection()
db = conn["test"]
collection = db["members"]

datafile=open("./mm.csv",'r')
title=datafile.readline()
titles=title.split(",")

line = csv.DictReader(datafile,fieldnames=titles,delimiter=",")
for data in line:
    collection.insert(data)

datafile.close()
collection.disconnect()

所属のデータが別CSVに保存してあるのでこのデータをマージしないと。