파이썬 folium, geojson, csv 질문있습니다. UnicodeDecodeError: 'cp949' codec can't decode
조회수 1046회
아래는 제가 짠 코드이고요
#-*- coding: utf-8 -*-
import folium
from folium import plugins
import pandas as pd
import json
import geojson
country_data='row_deal_s.csv'
df = pd.read_csv('row_deal_s.csv')
df.head()
geo_data = '32.geojson'
keys=[k['id'] for k in json.load(open('32.geojson'))['features']]
missing_keys=set(keys)-set(plot_data[country_data])
dicts=[]
for k in missing_keys:
row={}
dicts.append({country_data: k, 'Value': 0})
dicts
mapdata = country_data
mapdata = mapdata.append(dicts, ignore_index=True)
center = [36.48, 127.29]
m = folium.Map(location=center, zoom_start=10)
folium.Choropleth(
geo_data=geo_data,
data=df,
columns=('동읍면', '평균거래금액(만원)'),
key_on='feature.동',
fill_color='BuPu',
legend_name='매매가',
).add_to(m)
m.save('/Users/pc/Desktop/hoon/map1.html')
아래는 오류문입니다
Traceback (most recent call last):
File "C:\Users\pc\Desktop\hoon\raw.py", line 13, in <module>
keys=[k['id'] for k in json.load(open('32.geojson'))['features']]
File "C:\Users\pc\AppData\Local\Programs\Python\Python38-32\lib\json\__init__.py", line 293, in load
return loads(fp.read(),
UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 40: illegal multibyte sequence
geojson과 csv파일 모두 utf8 인코딩이 완료된 상태입니다. 만,
계속 인코딩 오류가 떠서 도움주시면 감사하겠습니다 (utf8, cp949, 'r', 'rt' 전부 해봤습니다)
코드 자체에 문제는 없는지도 봐주시면 감사하겠습니다 감사합니다
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
에러메시지를 보면,
32.geojson
을 'cp949' 인코딩으로 읽으려다 문제가 발생한 것입니다.32.geojson
이 'utf-8' 로 인코딩 되어 있다면, json 으로 바꾸기 전에 아래와 같이 읽어보시기 바랍니다.with open('32.geojson', 'r', encoding='utf-8') as f: txt = f.read() print(txt)
위 코드가 문제없이 실행된다면, 위 질문자의 코드에서
open('32.geojson')
부분을open('32.geojson', 'r', encoding='utf-8')
로 바꾸어 실행해 보면 될 것입니다.에러가 발생된다면, 에러메시지를 보고,
'32.geojson'
파일을 잘 살펴보아야 할 겁니다.
댓글 입력