Python 读取PostgreSQL的geometry字段,以及解决遇到的问题
import psycopg2
from psycopg2.extras import RealDictCursor
from shapely.wkb import loads as wkb_loads
# 连接数据库
conn = psycopg2.connect(
dbname="your_db",
user="your_user",
password="your_password",
host="your_host",
port="your_port"
)
# 创建游标
cursor = conn.cursor(cursor_factory=RealDictCursor)
# 查询语句
cursor.execute("SELECT geom FROM your_table WHERE id = %s", (your_id,))
# 获取查询结果
rows = cursor.fetchall()
# 解析geometry数据
geometries = [wkb_loads(row['geom']) for row in rows]
# 关闭连接
cursor.close()
conn.close()
在这个代码实例中,我们首先导入了psycopg2
库和它的extras
模块中的RealDictCursor
。然后,我们使用提供的数据库连接信息连接到PostgreSQL数据库。接下来,我们创建了一个游标对象,并使用它来执行查询语句,从数据库中检索特定ID的geometry
数据。我们使用wkb_loads
函数从WKB格式转换geometry数据为Shapely对象。最后,我们关闭了游标和数据库连接。
评论已关闭