카카오 api를 이용하여 주소를 가지고 위경도 등을 조회하는 예제
페이지 정보
작성자 관리자 댓글 0건 조회 143회 작성일 24-01-09 17:44본문
import requests
import pandas as pd
def f_search(as_address: str):
url = 'https://dapi.kakao.com/v2/local/search/address.json'
rest_api_key = '카카오에서 받은 api키'
header = {'Authorization': 'KakaoAK ' + rest_api_key}
params = dict(query=as_address, analyze_type='exact')
result = requests.get(url, headers=header, params=params).json()
#출력된 내용을 json뷰어에서 보면 값가져올때 편하게 찾을수 있음(뒤에 있는 메타부분은 제외하고 봐야 뷰어에서 오류 안남)
#print(result)
if 'errorType' in result:
result['success'] = False
else:
result['success'] = True
return result
data1 = pd.read_csv('./ppp2.csv',encoding='cp949')
df = pd.DataFrame(data1)
for my_row in df.index:
my_val=df.loc[my_row,"주소"]
my_result = f_search(my_val)
if my_result['success'] and my_result['meta']['total_count'] > 0:
my_addr = my_result['documents'][0]
my_latitude = my_addr['y']
my_longitude = my_addr['x']
my_roadaddr = my_addr['address_name']
my_zoneno = my_addr['road_address']['zone_no']
df.loc[my_row, "위도"]=my_latitude #기존자료에 업데이트됨
df.loc[my_row, "경도"]=my_longitude #기존자료에 업데이트됨
df.loc[my_row, "도로명주소"] = my_roadaddr #기존자료에 업데이트됨
df.loc[my_row, "우편번호"] = my_zoneno #기존자료 없는 항목이라 추가됨
#print(df)
#그대로 저장하면 기존엑셀내용 모두 저장되서
#데이터프레임에서 특정항목만 csv로 저장하기 위해 변환을 시킴
my_sample = df[['주소','위도','경도']]
#print(my_sample)
my_sample2 = pd.DataFrame(my_sample, columns=['주소','위도','경도'])
print(my_sample2)
#기존파일에 쓰기를 하면 원본에 문제가 생길수 있어 필요한 항목만 새로운 파일을 만들어 쓰기를함
#원본에 있는 항목과 값은 그대로 가져오며(주소,도로명주소2), 동일한 항목은 업데이트를 시킴
#원본에 없는 항목은 추가됨(우편번호)
#df.to_csv('./rrr2.csv',encoding='cp949')
my_sample2.to_csv('./rrr2.csv',encoding='cp949')
첨부파일
- ppp2.csv (135byte) 1회 다운로드 | DATE : 2024-01-09 17:44:48
댓글목록
등록된 댓글이 없습니다.