goodthings4me.tistory.com
아파트 관련 정보가 필요하여 공공데이터 포털(data.go.kr)에서 국토교통부 공동주택 기본 정보제공 서비스에 대한 오픈 API 활용신청 후 파이썬으로 코딩 후 데이터를 추출해보았다.
공공데이터 포털 API 사용해 아파트 정보 추출
공공데이터 포털에서 추출한 공동주택 관련 기본 정보제공 서비스에는 2가지 서비스가 있는데,
1) 공동주택 기본 정보조회
단지 코드를 이용해 단지명, 법정동 주소, 분양 형태, 난방방식, 건축물대장상 연면적, 동수, 세대수, 시공사, 시행사, 관리사무소 연락처, 관리사무소 팩스, 홈페이지 주소, 단지 분류, 도로명주소, 호수, 관리방식, 복도 유형, 사용승인일, 관리비 부과면적, 전용면적별 세대 현황, 단지 전용면적합, 법정동 코드를 조회할 수 있는 공동주택 기본 정보제공 서비스
2) 공동주택 상세 정보조회
단지코드를 이용해 단지 코드, 단지명, 일반관리방식, 일반관리인원, 일반관리 계약업체, 경비관리방식, 경비관리인원, 경비관리 계약업체, 청소관리방식, 청소관리인원, 음식물 처리방법, 소독관리방식, 소독관리 연간 소독 횟수, 소독방법, 건물구조, 수전용량, 세대 전기계약방식, 전기안전관리자 법정 선임 여부, 화재 수신 반방식, 급수방식, 승강기 관리형태, 승강기 대수, 주차대수(지상), 주차대수(지하), 주차관제. 홈네트워크, CCTV 대수, 부대 복리시설, 버스정류장 거리, 지하철 호선, 지하철 역명, 지하철역 거리, 편의시설, 교육시설을 조회할 수 있는 공동주택 상세 정보제공 서비스
이 두가지 서비스 중 내가 찾는 정보들은 기본 정보조회만 가져와도 충분했다.
API 호출 시 파라미터로 넣은 것이 서비스 키와 아파트 단지 코드가 필요했는데, 단지 코드는 추출을 완료했기 때문에 코딩만 해서 추출하면 되었다.
API 활용 소스 코드
import requests
import xmltodict
import json
import pandas as pd
def apt_basicinfo():
dangiCode = [ 'A10027999', 'A79082901', 'A79083201', 'A79072403', 'A79072402', 'A79033003', 'A10027015', 'A79033002' ]
apt_basic = []
for code in dangiCode:
url = 'http://apis.data.go.kr/1613000/AptBasisInfoService1/getAphusBassInfo'
params ={'serviceKey' : 본인의 서비스키, 'kaptCode' : code}
response = requests.get(url, params=params)
# print(response.content) # ascii
xml_data = response.content.decode('utf-8')
# print(xml_data)
parse_data = xmltodict.parse(xml_data)
print(parse_data) # OrderedDict([('
## 값이 없는 경우 또는 KeyError 발생 예외 처리
try:
if parse_data['response']['body'] == None:
continue
except Exception as e:
print(f'Error: {e}\n')
ord_data = parse_data['response']['body']['item']
print(ord_data)
## json() 활용하여 데이터 변환
jData = json.loads(json.dumps(ord_data))
print(jData)
apt_basic.append(jData)
break
df = pd.DataFrame(apt_basic)
print(df.head())
df.to_excel('apt_std_sample.xlsx', encoding='utf-8-sig')
apt_basicinfo()

- xml 파싱 후 출력(예시) : print(parse_data)
OrderedDict([('response', OrderedDict([('header', OrderedDict([('resultCode', '00'), ('resultMsg',
'NORMAL SERVICE.')])), ('body', OrderedDict([('item', OrderedDict([('bjdCode', '4711110100'), ('codeAptNm', '아파트'), ('codeHallNm', '계단식'), ('codeHeatNm', '개별난방'), ('codeMgrNm', '위탁관리'), ('codeSaleNm', '분양'), ('doroJuso', '경상북도 포항시 남구 상도남로 25'), ('hoCnt', '448'), ('kaptAcompany', '(주)한국토지신탁'), ('kaptAddr', '경상북도 포항남구 상도동 466-4 상도코아루센트럴하임'), ('kaptBcompany', '우진건설(주)'), ('kaptCode', 'A10027999'), ('kaptDongCnt', '5'), ('kaptFax', '0542729398'), ('kaptMarea', '47170.75'), ('kaptMparea_135', '0'), ('kaptMparea_136', '0'), ('kaptMparea_60', '44'), ('kaptMparea_85', '404'), ('kaptName', '상도코아루센트럴하임'), ('kaptTarea', '62294.0106'), ('kaptTel', '0542729399'), ('kaptUrl', None), ('kaptUsedate', '20150527'), ('kaptdaCnt', '448'), ('privArea', '35510.0136')]))]))]))])
- json.loads 데이터 출력(예시) : print(jData)
{'bjdCode': '4711110100', 'codeAptNm': '아파트', 'codeHallNm': '계단식', 'codeHeatNm': '개별난방',
'codeMgrNm': '위탁관리', 'codeSaleNm': '분양', 'doroJuso': '경상북도 포항시 남구 상도남로 25', 'hoCnt': '448', 'kaptAcompany': '(주)한국토지신탁', 'kaptAddr': '경상북도 포항남구 상도동 466-4 상도코
아루센트럴하임', 'kaptBcompany': '우진건설(주)', 'kaptCode': 'A10027999', 'kaptDongCnt': '5', 'kaptFax': '0542729398', 'kaptMarea': '47170.75', 'kaptMparea_135': '0', 'kaptMparea_136': '0', 'kaptMparea_60': '44', 'kaptMparea_85': '404', 'kaptName': '상도코아루센트럴하임', 'kaptTarea': '62294.0106', 'kaptTel': '0542729399', 'kaptUrl': None, 'kaptUsedate': '20150527', 'kaptdaCnt': '448', 'privArea': '35510.0136'}
- 판단스 DataFrame 출력 : print(df.head())
bjdCode codeAptNm codeHallNm ... kaptUsedate kaptdaCnt privArea
0 4711110100 아파트 계단식 ... 20150527 448 35510.0136
1 4711110400 아파트 계단식 ... 20061227 465 50757.5311
2 4711111200 아파트 혼합식 ... 19881031 275 20352.32
3 4711111200 아파트 혼합식 ... 19920630 297 10657.23
4 4711111200 아파트 혼합식 ... 19950530 367 25450.74
- 데이터의 column(필드 값) 예시
bjdCode 2638010100 ## 법정동 코드
codeAptNm 아파트 ## 단지 분류
codeHallNm 혼합식 ## 복도 유형
codeHeatNm 개별난방 ## 난방 방식
codeMgrNm 자치관리 ## 관리 방식
codeSaleNm 분양 ## 분양 형태
doroJuso 부산광역시 사하구 낙동대로 180 ## 도로명 주소
hoCnt 182 ## 호수
kaptAcompany (주)경성리츠 ## 시행사
kaptAddr 부산광역시 사하구 괴정동 258 괴정 경성스마트W아파트 ## 법정동주소
kaptBcompany (주)경성리츠 ## 시공사
kaptCode A10027875 ## 단지 코드
kaptDongCnt 3 ## 동수
kaptFax 0512949364 ## 관리사무소 팩스
kaptMarea 15040.1634 ## 관리비 부과면적(㎡)
kaptMparea_135 0 ## 전용면적별 세대현황(85㎡ ~ 135㎡ 이하)
kaptMparea_136 0 ## 전용면적별 세대현황(135㎡ 초과)
kaptMparea_60 182 ## 전용면적별 세대현황(60㎡ 이하)
kaptMparea_85 0 ## 전용면적별 세대현황(60㎡ ~ 85㎡ 이하)
kaptName 괴정 경성스마트W아파트 ## 단지명
kaptTarea 15040.1634 ## 건축물대장상 연면적(㎡)
kaptTel 0512949363 ## 관리사무소 연락처
kaptUrl None ## 홈페이지 주소
kaptUsedate 20150806 # 사용 승인일
kaptdaCnt 182 # 세대수
privArea 9014.0338 ## 단지 전용면적합(㎡)
블로그 인기글
폐업 신고 절차와 부가가치세 신고하는 방법
폐업 신고 시 세무서 안 가고 온라인으로 신고하는 방법인 '국세청 홈택스를 이용하여 폐업 신고하는 절차와 폐업 후 해야 하는 부가가치세 신고, 인건비 저리, 종합소득세 신고 등에 대해 포스팅합니다. 폐업 신고 시 홈택스 이용하는 방법과 부가가치세 등 신고 절차 여러가지 사유로 폐업을 해야 할 때, 예전에는 세무서를 방문해야 했지만 국세청 홈택스가 생긴 이후에는 사업자 등록이나 폐업 등을 인터넷으로 할 수가 있게 되었습니다. 특히, 코로나 시국인 요즘은 더더욱 온라인 신청 업무가 더 활성화되었죠. 폐업을 한다는 것 자체가 우울한 일인데, 발품을 파는 것보다는 커피 한잔 하면서 인터넷으로 간단하게 처리하는 게 좋을 듯하여 그 절차를 올려봅니다. 폐업은 폐업 신고와 함께 폐업 후 절차까지 모두 마쳐야 불이익이..
goodthings4me.tistory.com
[국세청] 현금영수증가맹점으로 가입바랍니다. 메시지 해결방법(개인사업자)
▶ 현금영수증 가맹점 가입 메시지를 받고... 온라인 쇼핑몰 사업을 시작하려고 사업자등록증을 발급받고 난 후 얼마 안 있어서 국세청으로부터 어느 시점까지 '현금영수증 가맹점'으로 가입하라는 문자메시지가 받았었다. 그 메시지 기한이 오늘 도래했는데, 인터넷에서 찾아보니 홈택스에서 현금영수증 발급 사업자 신청을 할 수가 있었다. [관련내용] 홈>국세정책/제도>전자(세금)계산서/현금영수증/신용카드>현금영수증∙신용카드>가맹점가입 ▶ 홈택스 사이트에서 신청하는 절차는 다음과 같다. 우선, 홈택스에 로그인을 해야 합니다. 세상이 좋아져서 공인인증서 없이도 손쉽게 간편인증 로그인이 가능하다. 여러 인증방법 중 카카오톡 인증이 가장 편리한 거 같다. 간편인증 로그인 후 상단 '조회/발급' 탭 클릭 후 '현금영수증>현금..
goodthings4me.tistory.com
Windows 10 탐색기 느려지는 증상과 해결하는 방법
잘 작동하던 Windows 10 탐색기가 갑자기 느려지는 증상이 발생했을 때 어떻게 조치를 하는지 구글에서 찾아보니 많은 해결책들이 있었으나 어떤 것이 정확한 해결책인지는 알 수가 없었다. 그래서 해결방법이라고 제시한 것들을 정리해 보았다. 윈도우 탐색기가 느려지는 증상 해결 방법 어느 순간부터 응용프로그램(VS Code 등)에서 폴더 열기나 파일 불러오기를 했을 때 검색 팝업창이 안 뜨거나 열리는 시간이 엄청 느려지는 증상과, 더불어서 탐색기도 실행이 많이 느려지는 증상이 있었다. 기존에 사용하던 VS Code에 openpyxl 설치 후 실행이 느려지는 증상이 발생하더니 윈도우10 탐색기도 느려져서 사용할 수가 없었다. 노트북에 OS(Windows10)를 설치한지 1년이 다 되어가긴 했지만, 1개월 전..
goodthings4me.tistory.com
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
juso.go.kr 도로명 주소, 엑셀로 분리하는 방법을 파이썬으로 해보기 (0) | 2022.02.09 |
---|---|
juso.go.kr에서 파이썬으로 도로명주소 등 추출 (0) | 2022.02.02 |
공공데이터 포털 api 사용법 - 파이썬으로 아파트 단지 코드 추출 (0) | 2022.01.23 |
파이썬 사전 타입 OrderedDict()와 dict() 차이점, 그리고 변환 (0) | 2022.01.20 |
공공데이터를 활용한 아파트 도로명 주소 등 추출해보기 (0) | 2022.01.18 |
댓글