You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从CSV字符串列提取Polygon坐标?含eval()实现方案

提取GeoJSON字符串中的Polygon坐标

方法一:使用标准JSON模块(推荐)

你的数据是标准JSON格式,用Python内置的json模块解析是最安全可靠的方式,能避免eval()带来的安全风险。

代码示例:

import json

# 从CSV读取的字符串数据
csv_str = '{"name": "Polygon Sample", "geo_json": {"type": "Feature", "properties": {}, "geometry": {"type": "Polygon", "coordinates": [[[-121.1958, 37.6683], [-121.1779, 37.6687], [-121.1773, 37.6792], [-121.1958, 37.6792], [-121.1958, 37.668]]]}}}'

# 将字符串解析为Python字典
data_dict = json.loads(csv_str)

# 按层级提取坐标:Polygon的coordinates外层嵌套了一层数组,取索引0即可
coordinates = data_dict['geo_json']['geometry']['coordinates'][0]
print(coordinates)

运行后输出目标坐标列表:

[[-121.1958, 37.6683], [-121.1779, 37.6687], [-121.1773, 37.6792], [-121.1958, 37.6792], [-121.1958, 37.668]]

方法二:使用eval()实现

注意:eval()会执行字符串中的任意代码,仅当你完全信任数据源(比如自己生成的CSV)时才使用,否则存在安全隐患。

代码示例:

# 从CSV读取的字符串数据
csv_str = '{"name": "Polygon Sample", "geo_json": {"type": "Feature", "properties": {}, "geometry": {"type": "Polygon", "coordinates": [[[-121.1958, 37.6683], [-121.1779, 37.6687], [-121.1773, 37.6792], [-121.1958, 37.6792], [-121.1958, 37.668]]]}}}'

# 用eval将字符串转为Python字典
data_dict = eval(csv_str)

# 按层级提取坐标
coordinates = data_dict['geo_json']['geometry']['coordinates'][0]
print(coordinates)

输出结果与方法一完全一致。

内容的提问来源于stack exchange,提问作者Asmita Guha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 05:35:19