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

如何将Python字典导出为GeoJSON并移除coordinates值的双引号

用Python普通字典存储并导出GeoJSON的实用方法

嘿,我来聊聊怎么在Python里用普通字典轻松搞定GeoJSON的存储和导出——毕竟GeoJSON本质上和常规JSON几乎没啥区别,就差在coordinates那一块儿的细节!

先搞清楚GeoJSON和常规JSON的差异

GeoJSON本质就是JSON的一个GIS专用子集,结构几乎完全一致,比如单个LineString要素的GeoJSON示例是这样的:

{ "type": "Feature", "geometry": { "type": "LineString", "coordinates": [ [10, 20], [30, 40] ] } }

唯一的不同点在于:coordinates键对应的值是无引号的数值数组(GIS领域里叫原始几何数据)——不过其实常规JSON里的数值类型本来也不需要加引号,所以这部分在Python里完全可以用列表直接对应。

用Python普通字典存储GeoJSON数据

完全没必要搞复杂的类或者专用库,直接用Python原生的dict()就能完美存储GeoJSON结构,比如构建一个带属性的LineString要素:

# 直接用字典构建GeoJSON结构
geojson_data = {
    "type": "Feature",
    "geometry": {
        "type": "LineString",
        "coordinates": [[10.0, 20.0], [30.0, 40.0]]  # 直接用Python列表存坐标
    },
    "properties": {
        "route_name": "测试通勤路线",
        "estimated_length": 28.28  # 属性字段也直接用键值对
    }
}

这里要注意:Python的列表直接对应GeoJSON的坐标数组,数值类型(int/float)不需要加引号,完全符合GeoJSON的规范要求。

导出为标准GeoJSON文件

用Python自带的json模块就能直接导出成标准的GeoJSON文件,不需要额外安装依赖:

import json

# 写入到本地文件
with open("my_route.geojson", "w", encoding="utf-8") as file:
    json.dump(geojson_data, file, indent=2, ensure_ascii=False)
  • indent=2:让导出的文件格式化后更易读,可选参数
  • ensure_ascii=False:支持中文等非ASCII字符,避免属性值乱码

为啥这种方式可行?

因为GeoJSON本身就是JSON的子集,Python的原生数据结构和GeoJSON的结构是完美映射的:

  • GeoJSON的对象 → Python字典
  • GeoJSON的数组 → Python列表
  • GeoJSON的数值 → Python的int/float
  • GeoJSON的字符串 → Python字符串

只要严格遵循GeoJSON的规范(比如type字段必须是标准值:Feature、Point、Polygon等,coordinates结构对应几何类型),用字典存储完全没问题,还特别简洁!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:45:46