UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xe2 в позиции 10894: порядковый номер не в диапазоне (128) - PullRequest
0 голосов
/ 12 декабря 2018

Я следовал этому примеру (https://github.com/geodocker/geodocker-jupyter-geopyspark/blob/master/notebooks/sanfranmvp.ipynb), чтобы я мог копировать аналогичные результаты, каждый был успешным, кроме последнего, я перепробовал все возможные настройки, но безуспешно, пожалуйста, кто-то может помочь мне сказать, что я делаюнеправильно.Вот последний шаг кода с использованием folium для просмотра моей карты в блокноте Jupyter.

m = folium.Map(tiles='OpenStreetMap', location=map_center, zoom_start=zoom)

folium.TileLayer(tiles=tms.url_pattern, attr='GeoPySpark', name='Weighted layer', overlay=True).add_to(m)

folium.GeoJson('data/bars.geojson', name='Bars', style_function=lambda x: {'radius': 2, 'color': 'red'}, overlay=True).add_to(m)

folium.GeoJson('data/cafes.geojson', name='Cafes', style_function=lambda x: {'fillColor': 'orange'}, overlay=True).add_to(m)

folium.GeoJson('data/transit.geojson', name='Transit', style_function=lambda x: {'fillColor': 'green'}, overlay=True).add_to(m)

m

Вот сообщение об ошибке:

UnicodeDecodeError                        Traceback (most recent call last)
<ipython-input-13-42944e2ceb84> in <module>()
     11 m = folium.Map(tiles='OpenStreetMap', location=map_center, zoom_start=zoom)
     12 folium.TileLayer(tiles=tms.url_pattern, attr='GeoPySpark', name='Weighted layer', overlay=True).add_to(m)
---> 13 folium.GeoJson('data/bars.geojson', name='Bars', style_function=lambda x: {'radius': 2, 'color': 'red'}, overlay=True).add_to(m)
     14 folium.GeoJson('data/cafes.geojson', name='Cafes', style_function=lambda x: {'fillColor': 'orange'}, overlay=True).add_to(m)
     15 folium.GeoJson('data/transit.geojson', name='Transit', style_function=lambda x: {'fillColor': 'green'}, overlay=True).add_to(m)


/usr/local/lib/python3.4/site-packages/folium/features.py in __init__(self, data, style_function, name, overlay, control, smooth_factor, highlight_function)
    480             else:  # This is a filename
    481                 with open(data) as f:
--> 482                     self.data = json.loads(f.read())
    483         elif data.__class__.__name__ in ['GeoDataFrame', 'GeoSeries']:
    484             self.embed = True


/usr/lib64/python3.4/encodings/ascii.py in decode(self, input, final)
     24 class IncrementalDecoder(codecs.IncrementalDecoder):
     25     def decode(self, input, final=False):
---> 26         return codecs.ascii_decode(input, self.errors)[0]
     27 
     28 class StreamWriter(Codec,codecs.StreamWriter):

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 10894: ordinal not in range(128)

1 Ответ

0 голосов
/ 13 декабря 2018

Вот мое окончательное решение проблемы, с помощью @ottomeister, я смог сузить свои исследования, которые привели меня к решению.

m = folium.Map(tiles='OpenStreetMap', location=map_center, zoom_start=zoom)
folium.TileLayer(tiles=tms.url_pattern, attr='MYGeoPySpark', name='Weighted layer', overlay=True).add_to(m)
folium.GeoJson(json.load(open('data/bars.geojson', encoding = 'utf-8')), name='Bars', style_function=lambda x: {'radius': 2, 'color': 'red'}, overlay=True).add_to(m)
folium.GeoJson(json.load(open('data/cafes.geojson', encoding = 'utf-8')), name='Cafes', style_function=lambda x: {'fillColor': 'orange'}, overlay=True).add_to(m)
folium.GeoJson(json.load(open('data/transit.geojson', encoding = 'utf-8')), name='Transit', style_function=lambda x: {'fillColor': 'green'}, overlay=True).add_to(m)

m
...