파이썬 folium, geojson, csv 질문있습니다. UnicodeDecodeError: 'cp949' codec can't decode

조회수 1044회

아래는 제가 짠 코드이고요

 #-*- 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' 파일을 잘 살펴보아야 할 겁니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)