PythonからPostGISを操作するには

PostGIS WikiのPostgis and Python
のところに、PythonからPostgreSQLに接続する方法が紹介されています。
ここではこの中からpsycopg2を採用します。

initd.orgからpsycopg2のソースコードをダウンロードすることができます。
コンパイルするのは大変そうで、心が折れそうになりますが、ありがたいことに
win-psycopg
にはpsycopg2のWindows用インストーラが配布されていますので、Windows環境ならこれを使うと良いでしょう。

使い方はドキュメントなどに書かれているのでそれを見ればわかりますが、
大体以下の様に使います。

接続

import psycopg2

  try:
    conn = psycopg2.connect("dbname='データベース名' user='ユーザ名' 
                             host='ホスト名' password='パスワード'")
  except:
    print "失敗"

SQL実行

  cur = conn.cursor()
  sql = """何かSELECT文"""
  cur.execute(sql)
  rows = cur.fetchone()
  # もしくは
  rows = cur.fetchall()

rowsにはリストが帰ってきます。
fetchone()を実行しても要素が1つのリストが帰ってきます。

PostGIS特有のSQL文もちゃんと実行してくれます。

切断

  conn.close()

非同期接続とか、クエリのキャンセルなんかもあります。
詳しくはpsycopg2のドキュメントを参照してください。

アーカイブ