将Python对象存储在数据库中以便于查询

时间:2013-10-02 16:56:52

标签: python database orm

我有一个程序来计算一组普通的互连对象(这些对象由基本上是String,int或链接到另一个对象的属性组成)。 我希望将对象存储在关系数据库中,以便于SQL查询(来自其他程序)。

此外,对象(类)倾向于改变和发展。我希望有一个通用的解决方案,无论何时进化,都不需要对“持久层”进行任何更改。

你有没有办法做到这一点?

4 个答案:

答案 0 :(得分:1)

如何在JSON中存储对象? 在将对象存储到数据库之前,您可以编写一个序列化对象的函数。 如果您有对象的特定标识符,我建议您将其用作索引,以便您可以轻松检索它。

答案 1 :(得分:1)

我自己没有使用它,但我听起来像是SQLAlchemy的用例:

http://www.sqlalchemy.org/

它基本上允许您将对象属性定义为表 - 列或与其他类的关系,并基本上处理所有直接的数据库交互。 可能还有其他库在做同样的事情,但SQLAlchemy就是我曾经偶然发现并且似乎很常用的。

答案 2 :(得分:0)

塞巴斯蒂安的想法可能是最容易使用的,因为它为你做了对象映射,但是,如果你已经熟悉SQL,并且喜欢它,并且使用python 2.5或更高版本,你可能会考虑使用sqlite3库。这是一个非常易于使用的库,我很确定它不需要任何工作来设置它。但是,您可能必须安装sqlite3库。 http://docs.python.org/2/library/sqlite3.html

答案 3 :(得分:0)

SQLAlchemy很棒。另一个主要选择是使用django的ORM:

https://docs.djangoproject.com/en/dev/intro/tutorial01/#creating-models

基本上在python中创建扩展django模型类的类被映射到标准的关系数据库表。