카카오맵과 python을 이용하여 위도, 경도로 한글주소 추출하기
배운점.. api key를 함부로 공유하지 말 것.
import json
import sys
import pandas as pd
import requests
from datetime import *
from tqdm import notebook
import time
# 전역 변수
APP_KEY = 'key' # 발급받은 키 입력
URL = 'https://dapi.kakao.com/v2/local/geo/coord2regioncode.json'
def json_request(url='', encoding='utf-8', success=None, error=lambda e: print('%s : %s' % (e, datetime.now()), file=sys.stderr)):
headers = {'Authorization': 'KakaoAK {}'.format(APP_KEY)}
resp = requests.get(url, headers=headers)
# print('%s : success for request [%s]' % (datetime.now(), url))
return resp.text
def reverse_geocode(longitude, latitude):
# 파라미터 최적화하여 url 생성
url = '%s?x=%s&y=%s' %(URL, longitude, latitude)
# json request
try:
json_req = json_request(url=url)
json_data = json.loads(json_req)
json_doc = json_data.get('documents')[1]
json_name = json_doc.get('region_3depth_name')
print(json_name)
except:
json_name = 'NaN'
return json_name
def get_address(url_csv):
address = []
# 경도, 위도 추출해서 동 주소 반환
for i in notebook.tqdm(url_csv.index) :
longitude = url_csv['x'][i]
latitude = url_csv['y'][i]
address.append(reverse_geocode(longitude, latitude))
return address # 전처리 함수에서 주소 리스트 받아서 데이터프레임에 추가
def main():
# 파일 읽기
url_csv = pd.read_csv('copy.csv')
# url_csv_5 = url_csv.head()
dong1 = get_address(url_csv)
dong=pd.DataFrame(dong1)
dong.columns=['dong']
print(dong)
url_csv['dong']=dong1
print(url_csv)
url_csv.to_csv(r"hello.csv",encoding="utf-8")
if __name__ == '__main__':
main()