Как заставить фолиум принимать входные данные geoJSON, которые, по-видимому, и вызывают эту ошибку?
Попытка создания картограммы и та же ошибка, поэтому попытались просто выполнить наложение geoJSON на базовой карте фолиумас файлом JSON, который я создал, взяв подмножество файла geoJSON большего размера.Работа в тетради Juypter.Файл JSON имеет правильную структуру.
msp_map = folium.Map (location = [широта, долгота], zoom_start = 10)
folium.GeoJson (msp_zipcode_geo, name = 'geojson').add_to (msp_map)
msp_map
AttributeError Traceback (последний вызов был последним) ~ / conda / lib / python3.6 / site-packages / IPython / core / formatters.pyв вызов (self, obj) 343 method = get_real_method (obj, self.print_method) 344, если метод не None: -> 345 return method () 346 return None 347 else:
~ / conda / lib / python3.6 / site-packages / folium / map.py в _repr_html_ (self, ** kwargs) 249 self._parent = None 250 else: -> 251 out = 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 для name, child в self._children.items (): -> 321 child.render (** kwargs) 322 возвращает 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 super (LegacyMap, self) .render (** kwargs) 339 340
~ / conda / lib / python3.6 / site-packages / branca / element.py в render (self, ** kwargs) 631 632 для имени, элемент в self._children.items (): -> 633 элемент.render (** kwargs)
~ / conda / lib / python3.6 / site-packages / branca / element.py в render (self, ** kwargs) 627 script = self._template.module. dict .get ('script', None) 628, если script не равен None: -> 629 figure.script.add_child (Элемент (script (self, kwargs)), 630 name = self.get_name ()) 631
~ / conda / lib / python3.6 / site-packages / jinja2 / runtime.py в call (self, * args, ** kwargs) 573 (self.name, len (self.arguments))) 574 -> 575 return self._invoke (arguments, autoescape) 576 577 def _invoke (self, arguments, autoescape):
~ / conda / lib / python3.6 / site-packages / jinja2 / asyncsupport.py в _invoke (self, arguments, autoescape) 108 def _invoke (self, arguments, autoescape): 109, если не self._environment.is_async:-> 110 return original_invoke (self, arguments, autoescape) 111 return async_invoke (self, arguments, autoescape) 112 return update_wrapper (_invoke, original_invoke)
~ / conda / lib / python3.6 / site-packages/jinja2/runtime.py в _invoke (self, arguments, autoescape) 577 def _invoke (self, arguments, autoescape): 578 "" "Этот метод заменяется асинхронной реализацией." "" -> 579 rv =self._func (* arguments) 580, если autoescape: 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 try:-> 262 return __obj (* args, ** kwargs) 263 за исключением StopItered: 264 return __self.environment.undefined ('значение не определено, поскольку'
~ / conda / lib / python3.6 / site-packages / folium / features.py в style_data (self) 563 564 для функции в self.data ['features']: -> 565 feature.setdefault ('properties', {}). setdefault ('style', {}) .update (self.style_function (feature)) # noqa 566 feature.setdefault ('properties', {}). setdefault ('highlight', {}). update (self.highlight_function (feature)) # noqa 567 возвращает json.dumps (self.data, sort_keys = True)
AttributeError: у объекта 'str' нет атрибута 'setdefault'
Ожидается получение карты с наложением границ округа, как указано в файле geoJSON.