Ошибка чтения файла JSON с использованием Folium geo_json

1

Я пытаюсь прочитать JSON файл из URL-адреса с помощью пакета Python Folium, но я продолжаю получать объект [Map10] 'Map' object has no attribute 'geo_json' или 'list' object has no attribute 'keys'.

Вот две версии моего кода, использующие Folium-

Версия 1:

from IPython.display import HTML
import folium

def embed_map(map, path="map.html"):
    map.create_map(path=path)
    return HTML('<iframe src="files/{path}" style="width: 100%; height: 510px; 
    border: 
    none"></iframe>'.format(path=path))

geojson_url_iw='http://kodapan.se/geodata/data/2015-06-26/kommuner.geo.json'
iw_map = folium.Map(location=[60.1282,  18.6435], zoom_start=5)
iw_map.geo_json(geo_path= geojson_url_iw)
embed_map(iw_map,'iw_map.html')

Версия 2:

import folium

def main():
    sweden_location  =  [ 60.1282,  18.6435 ]
    m = folium.Map(location=sweden_location, zoom_start=5)
    geojson = r'kommuner.geo.json'
    m.choropleth(geo_data=geojson)
    m.save(outfile="map.html")

if __name__ == "__main__":
    main()

Я также попытался разобрать файл с помощью json.load, но он не сработал.

EDIT: Здесь фрагмент файла JSON.

[
{
"kod": "1440",
"postnummer": "44980",
"telefon": "0303-330000",
"epost": "[email protected]",
"namn": "Ale kommun",
"geometry": {
  "coordinates": [
    [
      [12.37511384238, 58.11508613311],
      [12.39092963608, 58.10816346254],
      [12.39635219392, 58.11532482191],
      [12.42572438223, 58.10768598743],
      [12.43476197863, 58.09383642732],
      [12.42120558403, 58.05488558262],
      [12.42301310331, 58.03216456268],
      [12.41081234817, 58.02474720918],
      [12.41849430511, 58.01541351467],
      [12.41578302619, 58.00703504864],
      [12.40177475177, 57.9893141188],
      [12.37421008274, 57.9936254225],
      [12.35251985138, 57.97925239172],
      [12.31004314829, 57.9658323592],
      [12.29016043621, 57.92314244749],
      [12.30462059045, 57.90586018691],
      [12.30010179225, 57.89745608439],
      [12.13712088475, 57.86669593588],
      [12.03883702389, 57.83724092156],
      [12.04335582209, 57.82436933451],
      [12.03318852614, 57.82797865449],
      [12.01488739343, 57.81414096507],
      [12.01149829477, 57.8455388528],
      [12.01043839879, 57.85719462811],
      [12.00946483558, 57.86789766962],
      [12.04403364182, 57.91617414261],
      [12.06753139246, 57.94280650831],
      [12.08741410454, 57.95491649705],
      [12.12107915114, 57.97109673256],
      [12.13056862736, 58.01013890686],
      [12.13452604959, 58.01383335415],
      [12.16360303253, 58.00790882552],
      [12.1706326328, 58.01654138344],
      [12.22079841655, 58.02280291623],
      [12.23166234424, 58.02534106327],
      [12.24284579922, 58.0331235912],
      [12.23613572623, 58.03853652482],
      [12.24220674465, 58.04259568725],
      [12.27895238243, 58.06136331836],
      [12.33550871188, 58.08383768027],
      [12.35020696699, 58.10697317331],
      [12.37511384238, 58.11508613311]
    ]
  ],
  "type": "Polygon"
},
"url": "http://www.ale.se/",
"postort": "ALAFORS"
},

И здесь URL- http://kodapan.se/geodata/data/2015-06-26/kommuner.geo.json

Теги:
folium

1 ответ

0

если вам не нужно использовать folium напрямую, я бы рекомендовал загрузить предварительно установленный пакет json:

import json

data = your_file.json()

Надеюсь это поможет!

РЕДАКТИРОВАТЬ:

Если ваш Json хранится в виде строки, вы можете сделать это:

data = json.loads(your_file)

EDIT 2:

Спасибо за предоставление строки.

Проблема заключается в том, что строка имеет квадратные скобки вокруг него. Вы можете оценить строку, которая сделает ее списком, а затем захватить первый (и только) элемент. Этот файл был бы словарем, который предположительно служил бы вашей цели. Вы должны решить эту проблему следующим образом:

new_dict = eval(your_file)[0]
  • 1
    Это не сработало для меня. Я получаю сообщение об ошибке: объект 'str' не имеет атрибута 'json'.
  • 0
    Ах это строка, проверить редактирование я написал :)
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню