2010-05-25 54 views
4

如果你想在一个postgresql数据库的表中使用python操作数据(可能使用scipy对结果集进行一些分析),然后想要将数据导出到另一个表中数据库,你将如何去执行?Python和Postgresql

是唯一/最好的方法来做到这一点,只需要运行查询,让python将它存储在数组中,在python中操作数组,然后运行另一个sql语句输出到数据库?

我真的只是问,有没有更有效的方法来处理数据?

感谢, 伊恩

回答

1

我不知道我明白你的意思,但我会说这听起来很像

INSERT INTO anothertable SELECT stuff FROM the_table RETURNING * 

,然后在返回的行工作。当然,如果你不想在操作数据时修改数据。

0

您可以使用ORM(例如SQLAlchemy)将数据检索到“对象”中,并操作该对象。这样的实现可能比仅仅使用数组更优雅。

0

我同意SQL炼金术的建议或使用Django的ORM。您的需求似乎很容易使用PL/Python。

1

是这样做是为了 只需运行查询的唯一/最好的方法,有蟒蛇 商店它在一个阵列,操纵在Python中 数组,然后运行另一个 sql语句输出到 数据库?

不是唯一的办法(见其他答案),但恕我直言,最好的,当然也是最简单的。它只需要一个PostgreSQL librray(我使用psycopg)。标准接口记录在PEP 249中。

与psycopg一个SELECT的例子:

cursor.execute("SELECT * FROM students WHERE name=%(name)s;", 
       globals()) 

INSERT

cursor.execute("INSERT INTO Foobar (t, i) VALUES (%s, %s)", 
       ["I like Python", 42]) 
1

pgnumpy似乎是你在找什么。