pythonでCSVファイルを読み込んでmongodbへ投入
昨日の続き。外部から渡ってくるZIPファイルに含まれているテキストファイルはCSV形式で、この中に入っているデータを読み込んでmongodbへ投入します。mongodbのデータ形式もpythonのディクショナリも偶然か必然かjsonなので、そのままinsertすればいい。CSVをpythonのディクショナリへ読み込むのも、csv.DictReader()一発。楽ちん過ぎて涙が出てくる。
#!/usr/bin/python # -*- coding:utf-8 -*- import csv import pymongo conn = pymongo.Connection() #mongodbへのコネクション作成 db = conn["test"] #使用するDBを指定する。 collection = db["foo"] #使用するコレクションを指定する。 datafile = open(filename,'r') filednames = ('filed01','field02','field03') #CSVファイルをディクショナリへ読み込む。 line = csv.DictReader(datafile,filednames=fieldnames,delimiter='\t') for data in line: collection.insert(data) datafile.close() collection.disconnect()
実際に作ったスクリプトから一部抜粋していますのでちゃんと動作しないかも。
データの型とか、データ形式のフォーマットとか、「面倒だなぁ」ってところがどんどんプログラミング言語へ吸収されていって、人間はロジックだけを考えればいいみたいです。いい進化の方向です。