如何使用SQLAlchemy从ST\u Dump获取“geom”部件?

2024-10-01 09:41:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用SQLAlchemy将下面的SQL查询转换成Python代码。你知道吗

SELECT (ST_Dump(ST_Linemerge(ST_Union(geog::geometry)))).geom
FROM my_table
GROUP BY some_foreign_key

我在这方面取得了部分成功

from geoalchemy2 import Geometry
from sqlalchemy import func, cast

data = session.query(
    func.ST_Dump(
        func.ST_Linemerge(
            func.ST_Union(
                cast(MyTable.geog, Geometry)
            )
        )
    ).label('dumped_geom')
).group_by(
    MyTable.some_foreign_key
)

问题是^{}返回set而不是单个值,Python中的这个查询返回带有pathgeometry的字符串,我只需要geometry部分。Documentation for ^{} in geoalchemy2一点用都没有。你知道吗


Tags: keyfromimportsomegeoalchemy2dumpfuncst
1条回答
网友
1楼 · 发布于 2024-10-01 09:41:25

geoalchemy2提供了一个ST_Dump函数(返回一个具有geom属性的对象)

例如:

from geoalchemy2 import Geometry
from geoalchemy2.functions import ST_Dump
from sqlalchemy import cast, func

data = session.query(
    ST_Dump(
        func.ST_Linemerge(
            func.ST_Union(
                cast(MyTable.geog, Geometry)
            )
        )
    ).geom
).group_by(
    MyTable.some_foreign_key
)

相关问题 更多 >