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

如何用Python从字典列表生成.geojson及浮点经纬度报错解决

字典列表转GeoJSON报错与geometry逻辑说明

报错原因

你复用的代码中存在经纬度空值校验逻辑,触发报错的代码行为if(d["lon"].replace(" ", "") is not "") and (d["lat"].replace(" ", "") is not ""):。这段逻辑默认lon、lat字段为字符串类型,需要调用字符串方法replace去除空格后判断非空,但你当前输入的经纬度均为浮点型,浮点型变量不存在replace方法,因此抛出属性错误。

geometry部分实现逻辑

当前代码的点类型GeoJSON构造逻辑完全符合官方规范:

  • geometry的type字段固定为Point,标识当前要素为点类型
  • coordinates数组按先经度、后纬度的顺序存储坐标值,即[d["lon"], d["lat"]],该顺序为GeoJSON标准强制要求,不可调换
  • 构造完成的geometry会被封装进Feature对象,输入字典中除经纬度外的所有自定义元数据都会存入Feature的properties字段,最终所有Feature汇总为FeatureCollection,完成整体GeoJSON结构构造

修复方案

无需补充额外输入信息,仅需调整校验逻辑适配浮点型经纬度即可,可选两种修改方向:

  • 若不需要校验经纬度非空,直接删除触发报错的校验行即可,你当前贴出的无校验的示例代码可直接正常运行
  • 若需要保留非空校验,将原有校验逻辑替换为适配浮点型的版本:
import math
# 校验逻辑排除空值、非法NaN值,若0值属于合法坐标可保留,否则可新增判断排除0值
if not (d["lon"] is None or d["lat"] is None or math.isnan(d["lon"]) or math.isnan(d["lat"])):
    # 原有构造geometry、Feature的逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:54:03