2010-05-25 23 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似乎是你在找什麼。