gpt4 book ai didi

python - 如何遍历 geojson 元素

转载 作者:行者123 更新时间:2023-12-05 05:58:17 30 4
gpt4 key购买 nike

我想执行这个问题中的代码https://gis.stackexchange.com/questions/142391/storing-geojson-featurecollection-to-postgresql-with-postgis/142479#142479但是当我运行该应用程序时,我收到以下错误:

query="""
KeyError: ' "type"'

请告诉我如何修复它。

代码:

def exeGeoFromGeoJSONToWKT(self):        
query="""
WITH data AS (
SELECT '{ "type": "FeatureCollection",
"features": [
{ "type": "Feature",
"geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
"properties": {"prop0": "value0"}
},
{ "type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
]
},
"properties": {
"prop0": "value0",
"prop1": 0.0
}
},
{ "type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
[100.0, 1.0], [100.0, 0.0] ]
]
},
"properties": {
"prop0": "value0",
"prop1": {"this": "that"}
}
}
]}'::json AS featuresCollection)
SELECT
LIDARDataPolygonsAsGeometry
FROM (
SELECT
ST_Transform(ST_SetSRID(ST_GeomFromGeoJSON(feature->>'geometry'),4326),25832) AS LIDARDataPolygonsAsGeometry

FROM (SELECT json_array_elements(featuresCollection->'features') AS feature
FROM data) AS f
"""
print(query)

data = self.connection.query(query,[])
# print(data)
return data

尝试:

 query="""
WITH data AS (
SELECT $${ "type": "FeatureCollection",
"features": [
{ "type": "Feature",
"geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
"properties": {"prop0": "value0"}
}
]}$$::json AS featuresCollection)
SELECT
LIDARDataPolygonsAsGeometry
FROM (
SELECT
ST_Transform(ST_SetSRID(ST_GeomFromGeoJSON(feature->>'geometry'),4326),25832) AS LIDARDataPolygonsAsGeometry

FROM (SELECT json_array_elements(featuresCollection->'features') AS feature
FROM data) AS f
"""

最佳答案

从数据库的角度来看,查询工作正常,但问题似乎出在查询构建中。您的查询有一个包含多个 " 双引号的 JSON 文档,因此您可以转义它们 (\") 或尝试使用此中所述的参数将 JSON 添加到查询中其他 answer .

不相关:您不需要这 3 个嵌套子查询。一个查询就可以:

WITH data AS (
SELECT '{ "type": "FeatureCollection",
...
]}'::json AS mygeojson
)

SELECT
ST_Transform(
ST_SetSRID(
ST_GeomFromGeoJSON(json_array_elements(
mygeojson->'features')->>'geometry'),
4326),
25832) AS feature
FROM data

关于python - 如何遍历 geojson 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68558791/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com