goodthings4me.tistory.com
※파이썬으로 아파트 표준 데이터(공동주택 기본 정보) 관련 정보를 얻기 위해 공공데이터 포털에서 제공하는 단지 코드를 API를 활용해보았다. 그런데 전국에 있는 아파트 전체에 대한 코드가 아니라 관리비 공개 의무 단지만을 대상으로 하는 코드만 제공하는지 실제 아파트 숫자보다 적었다.
공공데이터 포털 오픈 API로 아파트 단지 코드 추출해보기
공동주택 관리비의 투명성 등을 확보한다는 취지로 지정된 "관리비 공개 의무 단지"는 다음과 같다고 되어있다.
☞ 참고 : 공동주택관리 정보시스템 http://www.k-apt.go.kr/cmmn/kaptworkintro.do
- 300세대 이상 공동주택,
- 승강기가 설치되었거나 중앙(지역) 난방방식을 갖춘 150세대 이상인 공동주택,
- 주택 150세대 이상인 주상복합 아파트,
- 그 외 입주자 2/3 이상이 의무관리대상 지정에 서면 동의한 공동주택, 공공임대 및 민간임대주택
"국토교통부_공동주택 단지 목록 제공 서비스" 오픈 API로 추출
import requests
import xmltodict
import json
def apt_danji(sido):
url = 'http://apis.data.go.kr/1613000/AptListService2/getSidoAptList'
param ={'serviceKey' : service_dkey, 'sidoCode' : sido, 'pageNo' : 1, 'numOfRows' : '1' }
r = requests.get(url, params=param)
xmlData = r.content.decode('utf-8')
parseData = xmltodict.parse(xmlData)
jData = json.loads(json.dumps(parseData))
# print(jData)
rows = jData['response']['body']['totalCount']
print(f'단지 코드수 : {int(rows):,} 개')
pages = int(int(rows)/100) + 1
print(f'pages: {pages}')
row_cnt = 1
for i in range(1, pages + 1):
params ={'serviceKey' : service_dkey, 'sidoCode' : sido, 'pageNo' : i, 'numOfRows' : '100' }
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)
ord_data = parse_data['response']['body']['items']['item']
print(ord_data)
print(f'page: {i} End\n{"=" * 50}')
try:
## json() 활용하여 데이터 변환
jdata = json.loads(json.dumps(ord_data))
for code_data in jdata:
print(f'row_cnt: {row_cnt}\n{code_data}\n')
row_cnt += 1
except Exception as e:
print(f'Error: {e}\n')
break
sido_code = 50
apt_danji(sido_code)
- sido_code 50은 제주특별자치도, 아래는 각 지역의 "시도 코드"임
- 단지 코드수는 116개
- pages 수를 구하기 위해 requests.get()을 사용했고, 이후 해당 페이지수만큼 for 문으로 순환하면서 코드를 추출함
- 추출한 데이터의 OrderedDict() 내용은
[OrderedDict([('as1', '제주특별자치도'), ('as2', '제주시'), ('as3', '일도이동'), ('bjdCode', '5011010200'), ('kaptCode', 'A69001201'), ('kaptName', '삼주')]), OrderedDict([('as1', '제주특별자치도'), ('as2', '제주시'), ('as3', '일도이동'), ('bjdCode', '5011010200'), ('kaptCode', 'A69001202'), ('kaptName', '혜성대유')]), OrderedDict([('as1', '제주특별자치도'), ('as2', '제주시'), ('as3', '일도이
동'), ('bjdCode', '5011010200'), ('kaptCode', 'A69001203'), ('kaptName', '일도우성1단지')]),....
- json으로 파싱해서 추출하면, 다음과 같은 형태임
{'as1': '제주특별자치도', 'as2': '제주시', 'as3': '일도이동', 'bjdCode': '5011010200', 'kaptCode':
'A69001201', 'kaptName': '삼주'}
- 위 소스코드로 추출한 아파트 단지 코드 다운로드 필요시, 아래에서 받으면 됨
※ 자료 다운로드 : 아파트 단지목록 및 단지 코드 (2022.11.29. 기준 업데이트 자료)
☞ 관련 포스팅 더보기
공동주택 단지코드(아파트 코드) 추출 - 파이썬 API 활용
'코딩 연습 > 코딩배우기' 카테고리의 다른 글
juso.go.kr에서 파이썬으로 도로명주소 등 추출 (0) | 2022.02.02 |
---|---|
파이썬으로 아파트 관련 기본 정보 추출해보기(공공데이터포털 API 사용법) (0) | 2022.01.24 |
파이썬 사전 타입 OrderedDict()와 dict() 차이점, 그리고 변환 (0) | 2022.01.20 |
공공데이터를 활용한 아파트 도로명 주소 등 추출해보기 (0) | 2022.01.18 |
웹 페이지 <script> 태그 CDATA, 넌 뭐하는 넘이니... (0) | 2022.01.15 |
댓글