如何让folium接受似乎导致此错误的geoJSON输入?
尝试做一个choropleth映射并得到相同的错误,因此尝试使用我通过获取更大的geoJSON文件的子集创建的JSON文件在基本的叶子地图上进行geoJSON叠加。在Juypter Notebook中工作。 JSON文件似乎具有正确的结构。
msp_map = folium.Map(位置= [纬度,经度],zoom_start = 10)
folium.GeoJson( msp_zipcode_geo, name ='geojson' ).add_to(msp_map)
msp_map
AttributeError跟踪(最近一次通话) 〜/ conda / lib / python3.6 / site-packages / IPython / core / formatters.py在致电中(self,obj) 343方法= get_real_method(obj,self.print_method) 344如果方法不是None: -> 345 return method() 346返回无 347其他:
〜/ conda / lib / python3.6 / site-packages / folium / map.py在_repr_html_中(self,** kwargs) 249 self._parent =无 250其他: -> 251出= self._parent._repr_html _(** kwargs) 252返回 253
〜/ conda / lib / python3.6 / site-packages / branca / element.py在_repr_html_中(self,** kwargs) 326 327“”“ -> 328 html = self.render(** kwargs) 329 html =“ data:text / html; charset = utf-8; base64,” + base64.b64encode(html.encode('utf8'))。decode('utf8')#noqa 330
〜/ conda / lib / python3.6 / site-packages / branca / element.py在render(self,** kwargs)中 319“”“呈现元素的HTML表示形式。”“” 320 for name,self._children.items()中的子对象: -> 321 child.render(** kwargs) 322 return self._template.render(this = self,kwargs = kwargs) 323
〜/ conda / lib / python3.6 / site-packages / folium / map.py在render(self,** kwargs)中 336''),name ='map_style') 337 -> 338超级(LegacyMap,self).render(** kwargs) 339 340
〜/ conda / lib / python3.6 / site-packages / branca / element.py在render(self,** kwargs)中 631 632作为名称,self._children.items()中的元素: -> 633 element.render(** kwargs)
〜/ conda / lib / python3.6 / site-packages / branca / element.py在render(self,** kwargs)中 627脚本= self._template.module。字典 .get('script',None) 628如果脚本不是None: -> 629 fig.script.add_child(Element(script(self,kwargs)), 第630章 631
调用中的〜/ conda / lib / python3.6 / site-packages / jinja2 / runtime.py(自身,* args,** kwargs) 573(self.name,len(self.arguments))) 574 -> 575 return self._invoke(参数,自动转义) 576 577 def _invoke(self,arguments,autoescape):
_invoke中的〜/ conda / lib / python3.6 / site-packages / jinja2 / asyncsupport.py(self,arguments,autoescape) 108 def _invoke(self,arguments,autoescape): 109(如果不是self._environment.is_async): -> 110 return original_invoke(self,arguments,autoescape) 111返回async_invoke(self,arguments,autoescape) 112返回update_wrapper(_invoke,original_invoke)
_invoke中的〜/ conda / lib / python3.6 / site-packages / jinja2 / runtime.py(self,arguments,autoescape) 577 def _invoke(自身,参数,自动转义): 578“”“此方法已由异步实现换出。”“” -> 579 rv = self._func(* arguments) 580,如果自动转义: 581 rv = Markup(rv)
在宏中(l_1_this,l_1_kwargs)
〜/ conda / lib / python3.6 / site-packages / jinja2 / runtime.py在调用中(_Context__self,_Context__obj,* args,** kwargs) 260个args =(__self.environment,)+ args 261尝试: -> 262返回__obj(* args,** kwargs) 263,除了StopIteration: 264 return __self.environment.undefined('值未定义,因为'
〜/ conda / lib / python3.6 / site-packages / folium / features.py在style_data(self)中 563 self.data ['features']中的特征564: -> 565 feature.setdefault('properties',{})。setdefault('style',{})。update(self.style_function(feature))#noqa 第566章,你是我的老公(3) 567返回json.dumps(self.data,sort_keys = True)
AttributeError:'str'对象没有属性'setdefault'
期望获取带有geoJSON文件中指定的县界覆盖图的地图。
答案 0 :(得分:0)
计算出数据的key_on列中的数据类型不匹配,在geoJSON文件中它是字符串类型,在数据集文件中是int64。转换数据集文件更加容易,并且为geoJSON集中的每个多边形生成了具有正确颜色范围的色度。
还弄清楚了我作为较大的geoJSON文件的子集创建的geoJSON文件的不同之处在于,我已经存储了一些数据作为dict,应该在何时将其列出。