如何通过循环数据帧 Python 中的分隔 ID 创建动态 Json?

How to create dynamic GeoJson through looping for seperate ids in dataframe Python?

如何更正以下循环,我正在动态传递列表,但出现语法错误:

我必须创建这个 geojson

{'features': [{'geometry': {'coordinates': [[-74.135963000000004,
      40.667178000000007],
     [-74.136641999999995, 40.667558000000014],
     [-74.136911999999995, 40.668396999999999],
     [-74.136506999999995, 40.669488000000001],
     [-74.135895000000005, 40.670712000000009],
     [-74.135069999999999, 40.671764999999994],
     [-74.134322999999995, 40.672862000000009],
     [-74.133790000000005, 40.673988000000008],
     [-74.133236999999994, 40.675107999999994],
     [-74.132769999999994, 40.676334999999995],
     [-74.132137, 40.67748499999999]]

通过以下循环,但我做错了。

for x in filteredData_subVoyageIDs.subVoyageIDs.unique():
    display(x)
    latlonData= filteredData_subVoyageIDs[filteredData_subVoyageIDs.subVoyageIDs == x]
    id_data = [[lon, lat] for lat, lon in zip(latlonData.lat, latlonData.lon)]
    display(id_data)
    lines = {'feature : [{ '"'geometry'"' : { '"'coordinates'"': '[[i] for i in id_data]'  } }]' }
    display(lines)

我希望此循环通过 '[[i] for i in id_data]'

生成以下内容

我收到以下语法错误:

我该如何更正它?

import geojson as jj
from geojson import Feature, Point, FeatureCollection

feature_collection =[]
for x in filteredData_subVoyageIDs.subVoyageIDs.unique():
    #display(x)
    latlonData= (filteredData_subVoyageIDs[filteredData_subVoyageIDs.subVoyageIDs == x])
    #lineString = [[lon, lat] for lat, lon in zip(latlonData.lat, latlonData.lon)]
    coordinates = list(zip(latlonData.lat.tolist(), latlonData.lon.tolist()))
    lineString = jj.LineString(coordinates)
    feature_geometry = Feature(geometry=lineString, properties= {"color": ["red"]})
    feature_collection = FeatureCollection([feature_geometry])
display(feature_collection)

我想我在这里得到了解决方案仍然需要做一些工作来嵌套它。 但这有效。