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

folium.GeoJson报错ValueError:无法处理TextIOWrapper对象求助

解决folium加载GeoJSON时的ValueError问题

嘿,我来帮你搞定这个错误!你遇到的问题是因为folium.GeoJson()并不接受open()返回的文件对象(也就是那个<_io.TextIOWrapper>),它需要的是GeoJSON数据的字符串内容或者已经解析好的Python字典/列表对象。

两种可行的解决方案:

方案1:直接读取文件内容为字符串

用read()方法把文件内容读出来,再传给GeoJson():

tacoma = folium.Map(location=[47.26, -122.46], zoom_start = 12)
# 使用with语句安全读取文件
with open('../data/Tacoma-Census-Blocks.geojson', 'r') as f:
    geojson_str = f.read()
folium.GeoJson(geojson_str).add_to(tacoma)
folium.LayerControl().add_to(tacoma)
tacoma

方案2:用json模块解析为Python对象

如果之后需要对GeoJSON数据做修改,这种方式会更灵活:

import json

tacoma = folium.Map(location=[47.26, -122.46], zoom_start = 12)
with open('../data/Tacoma-Census-Blocks.geojson', 'r') as f:
    geojson_data = json.load(f)
folium.GeoJson(geojson_data).add_to(tacoma)
folium.LayerControl().add_to(tacoma)
tacoma

小提示:

用with语句处理文件是最佳实践,它会在代码块结束后自动关闭文件,避免不必要的资源占用。原来的代码直接传open()的返回值,folium无法识别这个文件流对象,所以才抛出了ValueError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:44:35