如何修复python folium geoJSON代码中的“AttributeError:'str'对象没有属性”setdefault'?

2024-04-20 06:56:43 发布

您现在位置:Python中文网/ 问答频道 /正文

如何让folium接受geoJSON输入,这似乎导致了这个错误?在

尝试做一个choropleth映射,得到了同样的错误,所以尝试在一个基本的folium映射上做geoJSON覆盖,JSON文件是我通过获取一个更大的geoJSON文件的子集创建的。在Juypter笔记本上工作。JSON文件似乎具有正确的结构。在

msp图=叶地图(位置=[纬度,经度],缩放开始=10)

在folium.GeoJson页( msp邮编, name='geojson' )。添加到(msp地图)

msp_地图


AttributeError回溯(最近一次调用) ~/conda/lib/python3.6/site-packages/IPython/core/格式化程序.py在呼叫(self,obj) 343 method=获取实数方法(obj,self.print_方法) 344如果“方法”不是“无”: -->;345返回方法() 346返回无 347其他:

~/conda/lib/python3.6/site-packages/folium/地图.py在html中(自身,**kwargs) 249 self.\u parent=无 250其他: -->;251 out=自己.\u parent.\u repr_html_(**kwargs) 252返回 253个

~/conda/lib/python3.6/site-packages/branca/元素.py在html中(自身,**kwargs) 326 327英寸 -->;328 html=自渲染(**千瓦) 329 html=“数据:text/html;字符集=utf-8;base64,“+base64.b64编码(html.encode('utf8'))。解码('utf8')\noqa 330个

~/conda/lib/python3.6/site-packages/branca/元素.py渲染(自身,**kwargs) 319“”呈现元素的HTML表示形式 名字是320,我是孩子_儿童用品(): --&321吨子级.render(**千瓦) 322返回自我_模板.render(this=自我,kwargs=kwargs) 323个

~/conda/lib/python3.6/site-packages/folium/地图.py渲染(自身,**kwargs) 336“”),name='map_style') 337 -->;338 super(LegacyMap,self).渲染(**kwargs) 339 340个

~/conda/lib/python3.6/site-packages/branca/元素.py渲染(自身,**kwargs) 631 632代表名字,自我中的元素_儿童用品(): --&633吨元素.渲染(**千瓦)

~/conda/lib/python3.6/site-packages/branca/元素.py渲染(自身,**kwargs) 627 script=自我_模板.module.dict.get('script',无) 如果脚本不是,则为628: --&629吨figure.script.add_子级(元素(脚本(self,kwargs)), 630名称=self.get_名称()) 631个

~/conda/lib/python3.6/site-packages/jinja2/运行时.py在调用(self,*args,**kwargs) 573个(自身名称,伦(自变量))) 574 -->;575 return self.\u invoke(参数,自动转义) 576 577 def\u invoke(self、arguments、autoescape):

~/conda/lib/python3.6/site-packages/jinja2/异步支持.py调用(self、arguments、autoescape) 108 def\u invoke(self、arguments、autoescape): 109如果不是自己_environment.is_异步: -->;110返回原始调用(self、arguments、autoescape) 111返回异步调用(self、arguments、autoescape) 112返回update_wrapper(\u invoke,original_invoke)

~/conda/lib/python3.6/site-packages/jinja2/运行时.py调用(self、arguments、autoescape) 577 def\u invoke(self、arguments、autoescape): 578“”“此方法正被异步实现交换。” -->;579 rv=self.\u func(*参数) 580如果自动退出: 581 rv=标记(rv)

在宏中(l_1_this,l_1_kwargs)

~/conda/lib/python3.6/site-packages/jinja2/运行时.py呼叫中(_Context_uself,_Context_uobj,*args,**kwargs) 参数=260(__自我环境,)+参数 261尝试: -->;262返回(*args,**kwargs) 263除停止迭代外: 264返回__self.environment.未定义('值未定义,因为'

~/conda/lib/python3.6/site-packages/folium/功能.py样式数据(self) 563 564用于中的功能自我数据【特色】: --&大于565功能.setdefault('properties',{}).setdefault('style',{}).update(self.style_函数(特征)noqa 566功能.setdefault('properties',{}).setdefault('highlight',{}).update(self.highlight_功能(特征)noqa 567返回json.dumps文件(自我数据,排序键=真)

AttributeError:“str”对象没有属性“setdefault”

期望获得geoJSON文件中指定的覆盖县边界的地图。在


Tags: pygtself元素libpackageshtml地图
1条回答
网友
1楼 · 发布于 2024-04-20 06:56:43

发现数据的key_on列中的数据类型不匹配,在geoJSON文件中是字符串类型,而在数据集文件中是int64。转换数据集文件更容易,并且为geoJSON集中的每个多边形生成颜色范围正确的choropleth。在

我还发现,我创建的geoJSON文件作为更大的geoJSON文件的一个子集是不同的,我将一些数据存储为dict,而这些数据应该是list。在

相关问题 更多 >