1
我经常选择SQLite数据库中的数据为使用类似字典的列表:表列在Python解决
conn.row_factory = sqlite3.Row
c = conn.cursor()
selection = c.execute('select * from myTable')
dataset = selection.fetchall()
dataset1 = [dict(row) for row in dataset]
然而,鉴于我的后台数据库(FoxPro中,SQL服务器等),我我更习惯使用TABLE.COLUMN格式,我可以使用:
dataset2 = [RowObj(row) for row in dataset]
其中
class RowObj(dict):
def __getattr__(self, name):
return self[name]
问题 - 列值寻址,表['列']还是table.column最好?在我看来,后者看起来更整洁。这只是个人喜好的问题,还是每种方法的优点+缺点?
我还需要记住有一天数据库可能会从SQLite更改为mySQL行,所以我希望最小代码更改/如果发生这种情况。
我不想在此阶段使用像SQLObject或SQLAlchemy这样的ORM包 - 直到我确信他们将会使我的应用程序受益。
问候, 艾伦
感谢您的回答@cdhowie。你为字典关键字寻址提供了一个很好的例子。问候。 –