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