Python : O/Rマッパーなんて必要ないんじゃない?
sqlite3とかの場合、
class obj(dict): __getattr__ = dict.__getitem__ __setattr__ = dict.__setitem__ __delattr__ = dict.__delitem__ def dict_factory(cursor, row): d = {} for idx, col in enumerate(cursor.description): k = col[0] s = row[idx] d[idx] = s d[k.upper()] = s d[k.lower()] = s return obj(d)
という感じの関数を用意しておいて、
import sqlite3 con = sqlite3.connect(dbfile) con.row_factory = dict_factory a = con.execute("select * from TABLE_A").fetchone()
というふうに書けば、selectの結果にオブジェクトのようにアクセスできる。
これ以上の何が必要なのだろう?