如果你想在一个postgresql数据库的表中使用python操作数据(可能使用scipy对结果集进行一些分析),然后想要将数据导出到另一个表中数据库,你将如何去执行?Python和Postgresql
是唯一/最好的方法来做到这一点,只需要运行查询,让python将它存储在数组中,在python中操作数组,然后运行另一个sql语句输出到数据库?
我真的只是问,有没有更有效的方法来处理数据?
感谢, 伊恩
如果你想在一个postgresql数据库的表中使用python操作数据(可能使用scipy对结果集进行一些分析),然后想要将数据导出到另一个表中数据库,你将如何去执行?Python和Postgresql
是唯一/最好的方法来做到这一点,只需要运行查询,让python将它存储在数组中,在python中操作数组,然后运行另一个sql语句输出到数据库?
我真的只是问,有没有更有效的方法来处理数据?
感谢, 伊恩
你可以使用PL/Python来写一个PostgreSQL函数来处理数据。
http://www.postgresql.org/docs/current/static/plpython.html
虽然TBH我认为这是大同小异的相比,在外部客户端处理它在大多数情况下。
我会考虑使用http://www.sqlalchemy.org/。
SQLAlchemy是Python SQL工具包和对象关系映射器,为应用程序开发人员提供了SQL的全部功能和灵活性。
它支持Postgres的,太 - http://www.sqlalchemy.org/docs/05/reference/dialects/postgres.html
我不知道我明白你的意思,但我会说这听起来很像
INSERT INTO anothertable SELECT stuff FROM the_table RETURNING *
,然后在返回的行工作。当然,如果你不想在操作数据时修改数据。
您可以使用ORM(例如SQLAlchemy)将数据检索到“对象”中,并操作该对象。这样的实现可能比仅仅使用数组更优雅。
我同意SQL炼金术的建议或使用Django的ORM。您的需求似乎很容易使用PL/Python。
是这样做是为了 只需运行查询的唯一/最好的方法,有蟒蛇 商店它在一个阵列,操纵在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])
pgnumpy似乎是你在找什么。