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

我使用folium创建的地图无法保存为html文件,该如何解决?

folium地图导出失败排查与解决方法
  • 首先检查代码语法错误:你提供的代码中for循环最后一行末尾有一个多余的反引号,若实际运行的代码也包含该符号,会导致后续map.save语句未被执行,先删除该多余符号。
  • 检查文件保存路径:当前代码使用相对路径保存html,文件会生成在Python脚本的当前工作目录,而非你读取数据源的文件夹。可在代码开头加入如下代码打印工作目录,运行后前往对应路径查找生成的文件:
import os
print(os.getcwd())

如果需要指定保存到固定路径,直接把save的参数改成绝对路径即可,比如map.save(r"C:\Users\Jon\Downloads\volc1.html")。

  • 修复GeoJson文件读取的编码问题:Windows系统下直接读取utf-8编码的json文件容易出现编码错误,部分场景下不会显式抛出异常但会中断代码执行,修改GeoJson加载代码为:
folium.GeoJson(data = open(r'C:\Users\Jon\Downloads\Extract+me+json\world.json', 'r', encoding='utf-8-sig').read()).add_to(map)
  • 避免变量名冲突:你的代码中使用了Python内置函数名map作为地图对象变量名,可将变量名替换为m等自定义名称,避免潜在的命名冲突导致的执行异常。

修正后完整可运行代码

import pandas  
import folium
import os

# 打印当前工作目录,方便后续找生成的文件
print("文件将保存到:", os.getcwd())

df = pandas.read_csv(r"C:\Users\Jon\Downloads\Webmap_datasources\Volcanoes.txt")
lat = list(df["LAT"])  
lon = list(df["LON"])  
el = list(df["ELEV"])  

# 替换变量名避免冲突
m = folium.Map(location =[lat[1],lon[1]], zoom_start=3, tiles= "Stamen Terrain")

# 指定编码读取json文件
folium.GeoJson(data = open(r'C:\Users\Jon\Downloads\Extract+me+json\world.json', 'r', encoding='utf-8-sig').read()).add_to(m)

for x,y,z in zip(lat, lon, el):   
    folium.CircleMarker(location= (x,y), popup= str(z)).add_to(m)

# 可替换为绝对路径指定保存位置
m.save("volc1.html")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:06:10