<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>실거래조회 &#8211; 투데이즈.kr</title>
	<atom:link href="https://2days.kr/tag/%ec%8b%a4%ea%b1%b0%eb%9e%98%ec%a1%b0%ed%9a%8c/feed/" rel="self" type="application/rss+xml" />
	<link>https://2days.kr</link>
	<description>투데이즈</description>
	<lastBuildDate>Sun, 16 Nov 2025 13:12:30 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8</generator>

<image>
	<url>https://2days.kr/wp-content/uploads/2025/10/cropped-simbol-1-32x32.png</url>
	<title>실거래조회 &#8211; 투데이즈.kr</title>
	<link>https://2days.kr</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터)</title>
		<link>https://2days.kr/14/09/14/56529/it/program/</link>
		
		<dc:creator><![CDATA[urjent]]></dc:creator>
		<pubDate>Sat, 14 Sep 2024 05:33:20 +0000</pubDate>
				<category><![CDATA[program]]></category>
		<category><![CDATA[API키발급]]></category>
		<category><![CDATA[API활용]]></category>
		<category><![CDATA[개발자]]></category>
		<category><![CDATA[공공API]]></category>
		<category><![CDATA[공공데이터]]></category>
		<category><![CDATA[공공데이터포털]]></category>
		<category><![CDATA[데이터분석]]></category>
		<category><![CDATA[데이터수집]]></category>
		<category><![CDATA[매매가조회]]></category>
		<category><![CDATA[매물조회]]></category>
		<category><![CDATA[부동산]]></category>
		<category><![CDATA[부동산분석]]></category>
		<category><![CDATA[부동산시세]]></category>
		<category><![CDATA[부동산시장]]></category>
		<category><![CDATA[부동산자동화]]></category>
		<category><![CDATA[부동산정보]]></category>
		<category><![CDATA[시세분석]]></category>
		<category><![CDATA[시세조회]]></category>
		<category><![CDATA[실거래가조회]]></category>
		<category><![CDATA[실거래조회]]></category>
		<category><![CDATA[실거래조회기]]></category>
		<category><![CDATA[아파트매매]]></category>
		<category><![CDATA[연립다세대]]></category>
		<category><![CDATA[자동화프로그램]]></category>
		<category><![CDATA[주택매매]]></category>
		<category><![CDATA[주택시세]]></category>
		<category><![CDATA[주택정보]]></category>
		<category><![CDATA[파이썬]]></category>
		<category><![CDATA[파이썬개발]]></category>
		<category><![CDATA[파이썬프로그래밍]]></category>
		<category><![CDATA[파이썬프로젝트]]></category>
		<guid isPermaLink="false">https://2days.kr/?p=56529</guid>

					<description><![CDATA[파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터) ㅣ 서울 부동산 매매가를 조회하는 메소드가 잘 동작하는 것을 알았으니, 다 되었습니다. 약간 구조를 바꾸어서 서울 이외 지역의 부동산 매매가를 조회하는 메소드를 만들어보겠습니다. 파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터) 파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터) 2024.09.14 &#8211; [부동산/자동화 프로젝트] &#8211; 파이썬 부동산 매매가 조회 프로그램 만들기 1편 2024.09.14 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p data-ke-size="size16">파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터) ㅣ 서울 부동산 매매가를 조회하는 메소드가 잘 동작하는 것을 알았으니, 다 되었습니다. 약간 구조를 바꾸어서 서울 이외 지역의 부동산 매매가를 조회하는 메소드를 만들어보겠습니다.</p>
<h3 data-ke-size="size23">파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터)</h3>
<figure data-ke-type="image" data-ke-style="alignCenter" data-ke-mobilestyle="widthOrigin">
<p><figure style="width: 2560px" class="wp-caption alignnone"><img fetchpriority="high" decoding="async" src="https://blog.kakaocdn.net/dn/EeSAh/btsJDGpV2LI/0xKbiFscc7zjjRkUvFflS0/img.png" alt="파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터)" width="2560" height="2560" data-origin-width="2560" data-origin-height="2560" data-filename="파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터).png" data-is-animation="false" data-origin- title="파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터) 5"><figcaption class="wp-caption-text">파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터)</figcaption></figure><figcaption>파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터)</figcaption></figure><div class='code-block code-block-2' style='margin: 8px auto; text-align: center; display: block; clear: both;'>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8940400388075870"
     crossorigin="anonymous"></script>
<!-- 중간 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-8940400388075870"
     data-ad-slot="8794586137"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>

<p data-ke-size="size16"><a href="https://aboda.kr/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%B6%80%EB%8F%99%EC%82%B0-%EB%A7%A4%EB%A7%A4%EA%B0%80-%EC%A1%B0%ED%9A%8C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EB%A7%8C%EB%93%A4%EA%B8%B0-1%ED%8E%B8" target="_blank" rel="noopener">2024.09.14 &#8211; [부동산/자동화 프로젝트] &#8211; 파이썬 부동산 매매가 조회 프로그램 만들기 1편</a></p>
<p data-ke-size="size16"><a style="background-color: #e6f5ff; color: #0070d1; text-align: start;" href="https://aboda.kr/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%B6%80%EB%8F%99%EC%82%B0-%EB%A7%A4%EB%A7%A4%EA%B0%80-%EC%A1%B0%ED%9A%8C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EB%A7%8C%EB%93%A4%EA%B8%B0-2%ED%8E%B8-%EC%A7%80%EC%97%AD%EC%BD%94%EB%93%9C" target="_blank" rel="noopener">2024.09.14 &#8211; [부동산/자동화 프로젝트] &#8211; 파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드)</a></p>
<p data-ke-size="size16"><a href="https://aboda.kr/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%B6%80%EB%8F%99%EC%82%B0-%EB%A7%A4%EB%A7%A4%EA%B0%80-%EC%A1%B0%ED%9A%8C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EB%A7%8C%EB%93%A4%EA%B8%B0-3%ED%8E%B8-%EC%84%9C%EC%9A%B8%EC%95%84%ED%8C%8C%ED%8A%B8-%EC%BB%AC%EB%9F%BC-%EC%A0%95%EB%A6%AC" target="_blank" rel="noopener">2024.09.14 &#8211; [부동산/자동화 프로젝트] &#8211; 파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)</a></p>
<h2 id="서울-이외-지역-부동산-매매가를-조회하는-메소드" style="color: #000000; text-align: start;" data-ke-size="size26">서울 이외 지역 부동산 매매가를 조회하는 메소드</h2>
<pre class="bash hljs" style="color: #555555; text-align: start;" contenteditable="false" data-ke-language="bash"><span class="hljs-comment"># 사용자에게 시/도 이름을 입력받습니다.</span>
si_do_name = input(<span class="hljs-string">"시/도를 입력하세요 (예: 서울특별시): "</span>)
si_do_code = converter.get_si_do_code(si_do_name)

<span class="hljs-keyword">if</span> si_do_code is None:
    <span class="hljs-built_in">print</span>(f<span class="hljs-string">"'{si_do_name}'에 해당하는 시/도를 찾을 수 없습니다."</span>)
<span class="hljs-keyword">else</span>:
    <span class="hljs-comment"># 입력받은 시/도에 대한 시/군/구 코드 리스트 가져오기</span>
    sigungu_list = converter.get_sigungu(si_do_code)

    <span class="hljs-comment"># 모든 시/군/구 데이터를 수집할 DataFrame 초기화</span>
    all_data = pd.DataFrame()</pre>
<p style="color: #555555; text-align: start;" data-ke-size="size16">그냥 이전에 문자열로 &#8220;서울&#8221; 로 넣던 부분을 사용자에게 입력받아서 실행하도록 변경하였습니다. 저는 시험을 하기 위해서 충청남도를 검색하니, 충청남도 아파트 값을 잘 읽어 들이네요.</p>
<figure data-ke-type="image" data-ke-style="alignCenter" data-ke-mobilestyle="widthOrigin"><img decoding="async" src="https://blog.kakaocdn.net/dn/AqJpZ/btsJCWmRUCI/gAUkNVPjKJq6270npfCyok/img.png" data-origin-width="2730" data-origin-height="1192" data-filename="스크린샷 2024-09-14 오후 1.06.23.png" data-is-animation="false" alt="img" title="파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터) 6"><figcaption>서울 이외 지역 부동산 매매가를 조회하는 메소드</figcaption></figure>
<h2 id="성남시-빌라매매가-조회해보기" style="color: #000000; text-align: start;" data-ke-size="size26">자동화를 위한 입력시간 제한</h2>
<p style="color: #555555; text-align: start;" data-ke-size="size16">나중에 해당 소스를 자동화하기 위해서 만약 사용자에게 10초 이내 입력값을 받지 못하면, 전국을 조사하도록 코드를 변경합니다.</p>
<pre id="code_1726287064121" class="bash hljs" contenteditable="false" data-ke-language="bash" data-ke-type="codeblock"><span class="hljs-comment"># 사용자에게 시/도를 물어봄</span>
si_do_name = get_user_input(<span class="hljs-string">"시/도를 입력하세요 (10초 이내 입력): "</span>)

<span class="hljs-comment"># 시/도가 제공되지 않았거나 유효하지 않은 경우 전체 데이터 조회</span>
<span class="hljs-keyword">if</span> not si_do_name or si_do_name not <span class="hljs-keyword">in</span> [district[<span class="hljs-string">"si_do_name"</span>] <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> converter.districts]:
    si_do_name = None
    <span class="hljs-built_in">print</span>(<span class="hljs-string">"유효하지 않은 시/도 입력 또는 입력이 없어서 전체 데이터를 조회합니다."</span>)
<span class="hljs-keyword">else</span>:
    <span class="hljs-built_in">print</span>(f<span class="hljs-string">"{si_do_name}에 대한 데이터를 조회합니다."</span>)

<span class="hljs-comment"># 시/도 코드 및 시/군/구 리스트 가져오기</span>
si_do_code = converter.get_si_do_code(si_do_name) <span class="hljs-keyword">if</span> si_do_name <span class="hljs-keyword">else</span> None
sigungu_list = converter.get_sigungu(si_do_code) <span class="hljs-keyword">if</span> si_do_code <span class="hljs-keyword">else</span> [sigungu <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> converter.districts <span class="hljs-keyword">for</span> sigungu <span class="hljs-keyword">in</span> district[<span class="hljs-string">"sigungu"</span>]]

<span class="hljs-comment"># 모든 시/군/구 데이터를 수집할 DataFrame 초기화</span>
all_data = pd.DataFrame()</pre>
<p style="color: #555555; text-align: start;" data-ke-size="size16">이렇게 하면 10초 이내 시/도를 입력하지 않을 경우 전국의 데이터를 조사합니다.</p>

<figure data-ke-type="image" data-ke-style="alignCenter" data-ke-mobilestyle="widthOrigin"><img decoding="async" src="https://blog.kakaocdn.net/dn/VgFLY/btsJDtxxq0e/HkLUFWhtD14IjkeD0fKfi0/img.png" data-origin-width="2638" data-origin-height="918" data-filename="스크린샷 2024-09-14 오후 1.09.50.png" data-is-animation="false" alt="img" title="파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터) 7"><figcaption>파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터)</figcaption></figure>
<figure data-ke-type="image" data-ke-style="alignCenter" data-ke-mobilestyle="widthOrigin"><img decoding="async" src="https://blog.kakaocdn.net/dn/ctaQPJ/btsJCXspild/Fk4zCjRW0ApAKJrWZ9Vqr1/img.png" data-origin-width="2678" data-origin-height="1258" data-filename="스크린샷 2024-09-14 오후 1.16.04.png" data-is-animation="false" alt="img" title="파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터) 8"><figcaption>파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터)</figcaption></figure>
<p data-ke-size="size16"><span style="color: #555555; text-align: start;">위와 같이 나옵니다.</span><br />
<span style="color: #555555; text-align: start;">코드를 만지면서 중간에 컬럼 제목이 다시 원상태가 되었고, 시/도명이 &#8216;전국&#8217;으로만 표시 되는 문제가 있네요. 그래서 조금 수정하는 겸, 기조회기간도 설정해보도록 하겠습니다. </span>이렇게 서울 이외의 지역에 대해서, 아파트가 아닌 부동산에 대해서 조회해보았습니다.</p>
<figure data-ke-type="image" data-ke-style="alignCenter" data-ke-mobilestyle="widthOrigin"><img decoding="async" src="https://blog.kakaocdn.net/dn/KQNpQ/btsJDZij1jw/4j4S9vKkW9giMwpZZmaA8k/img.png" data-origin-width="2670" data-origin-height="848" data-filename="스크린샷 2024-09-14 오후 2.16.12.png" data-is-animation="false" alt="img" title="파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터) 9"><figcaption>파이썬 부동산 매매가 조회 프로그램 만들기 4편 (전국 데이터)</figcaption></figure>
<figure contenteditable="false" data-ke-type="file" data-ke-align="alignCenter">
<div class="image"></div>
<div class="desc">
<p class="filename"><span class="name">서울특별시_202401_202402_매매</span><span class="type">.csv</span></p>
<p class="size">0.76MB</p>
</div>
</figure>
<p style="color: #555555; text-align: start;" data-ke-size="size16">다음 포스트에서는 필터역할을 해주는 메소드를 만들어서, 매매가 데이터에 대해 필터링을 해보겠습니다.</p>
<pre id="code_1726291033637" class="bash hljs" contenteditable="false" data-ke-language="bash" data-ke-type="codeblock">import json
import os
import pandas as pd
from google.colab import drive
import PublicDataReader as pdr
from PublicDataReader import TransactionPrice
from datetime import datetime

class DistrictConverter:
    def __init__(self):
        self.districts = self.__read_district_file()

    def __read_district_file(self):
        <span class="hljs-comment"># Google 드라이브를 마운트합니다.</span>
        drive.mount(<span class="hljs-string">'/content/drive'</span>)

        <span class="hljs-comment"># 드라이브 내의 JSON 파일 경로를 설정합니다.</span>
        json_file_path = <span class="hljs-string">'/content/drive/MyDrive/district.json'</span>
        
        <span class="hljs-comment"># 파일을 열어서 내용을 읽고 JSON으로 변환합니다.</span>
        with open(json_file_path, <span class="hljs-string">'r'</span>) as f:
            <span class="hljs-built_in">return</span> json.loads(f.read())

    def get_si_do_code(self, si_do_name):
        <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> self.districts:
            <span class="hljs-keyword">if</span> si_do_name == district[<span class="hljs-string">"si_do_name"</span>]:
                <span class="hljs-built_in">return</span> district[<span class="hljs-string">"si_do_code"</span>]

    def get_sigungu(self, si_do_code):
        <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> self.districts:
            <span class="hljs-keyword">if</span> si_do_code == district[<span class="hljs-string">"si_do_code"</span>]:
                <span class="hljs-built_in">return</span> district[<span class="hljs-string">"sigungu"</span>]

def get_user_input(prompt, default_value=None):
    try:
        user_input = input(prompt)
        <span class="hljs-built_in">return</span> user_input <span class="hljs-keyword">if</span> user_input.strip() <span class="hljs-keyword">else</span> default_value
    except EOFError:
        <span class="hljs-built_in">return</span> default_value

<span class="hljs-comment"># 사용자로부터 시/도와 기간을 입력 받음</span>
si_do_name = get_user_input(<span class="hljs-string">"시/도를 입력하세요 (예: 서울특별시) 또는 '전국' 입력: "</span>, <span class="hljs-string">"전국"</span>)
start_year_month = get_user_input(<span class="hljs-string">"조회 시작 년월 (YYYYMM 형식, 예: 202301): "</span>, None)
end_year_month = get_user_input(<span class="hljs-string">"조회 종료 년월 (YYYYMM 형식, 예: 202312): "</span>, None)

<span class="hljs-comment"># 현재 날짜를 기준으로 기간을 설정</span>
now = datetime.now()
current_year_month = now.strftime(<span class="hljs-string">"%Y%m"</span>)

<span class="hljs-comment"># 기간을 설정합니다.</span>
<span class="hljs-keyword">if</span> not start_year_month:
    start_year_month = f<span class="hljs-string">"{now.year}01"</span>
<span class="hljs-keyword">if</span> not end_year_month:
    end_year_month = current_year_month

<span class="hljs-comment"># DistrictConverter 인스턴스 생성</span>
converter = DistrictConverter()

<span class="hljs-comment"># 서울특별시와 모든 시/군/구 데이터를 수집할 DataFrame 초기화</span>
all_data = pd.DataFrame()

<span class="hljs-comment"># 전체 시/도 조사</span>
<span class="hljs-keyword">if</span> si_do_name == <span class="hljs-string">"전국"</span>:
    <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> converter.districts:
        si_do_code = district[<span class="hljs-string">"si_do_code"</span>]
        sigungu_list = district[<span class="hljs-string">"sigungu"</span>]
        <span class="hljs-keyword">for</span> sigungu <span class="hljs-keyword">in</span> sigungu_list:
            sigungu_code = sigungu[<span class="hljs-string">"sigungu_code"</span>]
            sigungu_name = sigungu[<span class="hljs-string">"sigungu_name"</span>]

            <span class="hljs-built_in">print</span>(f<span class="hljs-string">"Processing data for {sigungu_name} ({sigungu_code})"</span>)

            <span class="hljs-comment"># 부동산 데이터를 가져옴</span>
            df = <a href="https://2days.kr/30/11/12/70250/aboda/">api</a>.get_data(
                property_type=<span class="hljs-string">"아파트"</span>,
                trade_type=<span class="hljs-string">"매매"</span>,
                sigungu_code=sigungu_code,
                start_year_month=start_year_month,
                end_year_month=end_year_month
            )

            <span class="hljs-comment"># 시/군/구 이름 및 시/도 이름을 새로운 컬럼으로 추가</span>
            df[<span class="hljs-string">"sigungu_name"</span>] = sigungu_name
            df[<span class="hljs-string">"si_do_name"</span>] = district[<span class="hljs-string">"si_do_name"</span>]

            <span class="hljs-comment"># 가져온 데이터를 all_data에 추가</span>
            all_data = pd.concat([all_data, df], ignore_index=True)
<span class="hljs-keyword">else</span>:
    si_do_code = converter.get_si_do_code(si_do_name)
    sigungu_list = converter.get_sigungu(si_do_code)

    <span class="hljs-keyword">for</span> sigungu <span class="hljs-keyword">in</span> sigungu_list:
        sigungu_code = sigungu[<span class="hljs-string">"sigungu_code"</span>]
        sigungu_name = sigungu[<span class="hljs-string">"sigungu_name"</span>]

        <span class="hljs-built_in">print</span>(f<span class="hljs-string">"Processing data for {sigungu_name} ({sigungu_code})"</span>)

        <span class="hljs-comment"># 부동산 데이터를 가져옴</span>
        df = api.get_data(
            property_type=<span class="hljs-string">"아파트"</span>,
            trade_type=<span class="hljs-string">"매매"</span>,
            sigungu_code=sigungu_code,
            start_year_month=start_year_month,
            end_year_month=end_year_month
        )

        <span class="hljs-comment"># 시/군/구 이름 및 시/도 이름을 새로운 컬럼으로 추가</span>
        df[<span class="hljs-string">"sigungu_name"</span>] = sigungu_name
        df[<span class="hljs-string">"si_do_name"</span>] = si_do_name

        <span class="hljs-comment"># 가져온 데이터를 all_data에 추가</span>
        all_data = pd.concat([all_data, df], ignore_index=True)

<span class="hljs-comment"># 데이터 열 이름을 한국어로 변환</span>
columns_to_select = {
    <span class="hljs-string">"si_do_name"</span>: <span class="hljs-string">"시도"</span>,
    <span class="hljs-string">"sigungu_name"</span>: <span class="hljs-string">"시군구"</span>,
    <span class="hljs-string">"umdNm"</span>: <span class="hljs-string">"법정동"</span>,
    <span class="hljs-string">"roadNm"</span>: <span class="hljs-string">"도로명"</span>,
    <span class="hljs-string">"bonbun"</span>: <span class="hljs-string">"지번"</span>,
    <span class="hljs-string">"aptNm"</span>: <span class="hljs-string">"아파트"</span>,
    <span class="hljs-string">"buildYear"</span>: <span class="hljs-string">"건축년도"</span>,
    <span class="hljs-string">"excluUseAr"</span>: <span class="hljs-string">"전용면적"</span>,
    <span class="hljs-string">"floor"</span>: <span class="hljs-string">"층"</span>,
    <span class="hljs-string">"dealYear"</span>: <span class="hljs-string">"거래년도"</span>,
    <span class="hljs-string">"dealMonth"</span>: <span class="hljs-string">"거래월"</span>,
    <span class="hljs-string">"dealDay"</span>: <span class="hljs-string">"거래일"</span>,
    <span class="hljs-string">"dealAmount"</span>: <span class="hljs-string">"거래금액"</span>,
    <span class="hljs-string">"aptSeq"</span>: <span class="hljs-string">"일련번호"</span>,
    <span class="hljs-string">"dealingGbn"</span>: <span class="hljs-string">"거래유형"</span>,
    <span class="hljs-string">"estateAgentSggNm"</span>: <span class="hljs-string">"중개사소재지"</span>,
    <span class="hljs-string">"cdealType"</span>: <span class="hljs-string">"해제여부"</span>,
    <span class="hljs-string">"cdealDay"</span>: <span class="hljs-string">"해제사유발생일"</span>
}

<span class="hljs-comment"># 필요한 열만 남기고 한국어 열 이름으로 변경</span>
selected_data = all_data.rename(columns=columns_to_select)[list(columns_to_select.values())]

<span class="hljs-comment"># 파일명을 규칙적으로 지정</span>
file_name = f<span class="hljs-string">'{si_do_name if si_do_name != "전국" else "전체"}_{start_year_month}_{end_year_month}_매매.csv'</span>.replace(<span class="hljs-string">" "</span>, <span class="hljs-string">""</span>)
csv_path = f<span class="hljs-string">'/content/drive/MyDrive/{file_name}'</span>

<span class="hljs-comment"># 필요한 열만 남긴 데이터를 CSV 파일로 저장 (utf-8-sig 인코딩으로 저장)</span>
selected_data.to_csv(csv_path, index=False, encoding=<span class="hljs-string">'utf-8-sig'</span>)

<span class="hljs-comment"># 파일 저장 후, 선택된 데이터의 일부를 출력하여 확인</span>
<span class="hljs-built_in">print</span>(selected_data.head())</pre>
<p><a href="https://2days.kr/14/09/08/56521/coding/data/">파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드)</a></p>
<p><a href="https://2days.kr/14/09/12/56525/coding/data/">파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)</a></p>
<!-- AI CONTENT END 2 -->
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)</title>
		<link>https://2days.kr/14/09/12/56525/it/program/</link>
		
		<dc:creator><![CDATA[urjent]]></dc:creator>
		<pubDate>Sat, 14 Sep 2024 03:44:50 +0000</pubDate>
				<category><![CDATA[program]]></category>
		<category><![CDATA[API키발급]]></category>
		<category><![CDATA[API활용]]></category>
		<category><![CDATA[개발자]]></category>
		<category><![CDATA[공공API]]></category>
		<category><![CDATA[공공데이터]]></category>
		<category><![CDATA[공공데이터포털]]></category>
		<category><![CDATA[데이터분석]]></category>
		<category><![CDATA[데이터수집]]></category>
		<category><![CDATA[매매가조회]]></category>
		<category><![CDATA[매물조회]]></category>
		<category><![CDATA[부동산]]></category>
		<category><![CDATA[부동산분석]]></category>
		<category><![CDATA[부동산시세]]></category>
		<category><![CDATA[부동산시장]]></category>
		<category><![CDATA[부동산자동화]]></category>
		<category><![CDATA[부동산정보]]></category>
		<category><![CDATA[시세분석]]></category>
		<category><![CDATA[시세조회]]></category>
		<category><![CDATA[실거래가조회]]></category>
		<category><![CDATA[실거래조회]]></category>
		<category><![CDATA[실거래조회기]]></category>
		<category><![CDATA[아파트매매]]></category>
		<category><![CDATA[연립다세대]]></category>
		<category><![CDATA[자동화프로그램]]></category>
		<category><![CDATA[주택매매]]></category>
		<category><![CDATA[주택시세]]></category>
		<category><![CDATA[주택정보]]></category>
		<category><![CDATA[파이썬]]></category>
		<category><![CDATA[파이썬개발]]></category>
		<category><![CDATA[파이썬프로그래밍]]></category>
		<category><![CDATA[파이썬프로젝트]]></category>
		<guid isPermaLink="false">https://2days.kr/?p=56525</guid>

					<description><![CDATA[파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리) ㅣ 저번 포스트에서는 지역 구분별 코드를 컨버팅해주는 클래스를 만들어보았습니다. 이번 포스트에서는 일단 라이브러리를 이용해서 추출을 한다음에 어떤 컬럼이 필요한지, 필요없는지, 추가해야할 데이터는 무엇이 있을지 생각해보고 추가해서 정제한다음, 대표적으로 서울 아파트 매매가를 조회해보겠습니다. 파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리) 파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리) 해당 포스팅은 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리) ㅣ 저번 포스트에서는 지역 구분별 코드를 컨버팅해주는 클래스를 만들어보았습니다. 이번 포스트에서는 일단 라이브러리를 이용해서 추출을 한다음에 어떤 컬럼이 필요한지, 필요없는지, 추가해야할 데이터는 무엇이 있을지 생각해보고 추가해서 정제한다음, 대표적으로 서울 아파트 매매가를 조회해보겠습니다.</p>
<h3 data-ke-size="size23"><b>파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)</b></h3>
<figure data-ke-type="image" data-ke-mobilestyle="widthOrigin" data-ke-style="alignCenter">
<p><figure style="width: 2560px" class="wp-caption alignnone"><img decoding="async" src="https://blog.kakaocdn.net/dn/bNuJrP/btsJCJVvPkl/XPmdmQDRwPqAK4S3kIC9o1/img.png" alt="파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)" width="2560" height="2560" data-origin-width="2560" data-origin-height="2560" data-is-animation="false" data-filename="파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리).png" data-origin- title="파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리) 12"><figcaption class="wp-caption-text">파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)</figcaption></figure><figcaption>파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)</figcaption></figure><div class='code-block code-block-2' style='margin: 8px auto; text-align: center; display: block; clear: both;'>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8940400388075870"
     crossorigin="anonymous"></script>
<!-- 중간 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-8940400388075870"
     data-ad-slot="8794586137"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>

<p>해당 포스팅은 1편, 2편에 이은 3편이므로 1,2편을 보지 않으신 분들은 먼저 포스팅을 보고 오세요!</p>
<p><a href="https://2days.kr/14/09/06/56517/coding/data/">파이썬 부동산 매매가 조회 프로그램 만들기 1편</a></p>
<p><a href="https://2days.kr/14/09/08/56521/coding/data/">파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드)</a></p>
<h2 id="라이브러리-이용해서-한-번-추출해보기" style="color: #000000; text-align: start;">라이브러리 이용해서 한 번 추출해보기</h2>
<p style="color: #555555; text-align: start;">일단 라이브러리를 이용해서 결과물이 어떻게 나오는지 한 번 보겠습니다. 저번 포스트에서 말씀드린 것 처럼, 저는 구글 코랩을 이용하고 있습니다.</p>
<p><a href="https://github.com/WooilJeong/PublicDataReader" target="_blank" rel="noopener noreferrer noopener">https://github.com/WooilJeong/PublicDataReader</a></p>
<p style="color: #555555; text-align: start;">제가 원하는건 특정 월의 매매데이터라서, read_data() 메소드를 이용해보겠습니다. 파라미터로는 매물의 종류, 거래유형, 시군구코드, 거래가 발생한 연도와 달을 넘겨주고 실행해봅니다.</p>
<p style="color: #555555; text-align: start;">그러면 아래와 같이 결과값이 출력됩니다. 일단 print문으로 에러가 있는 api들에 대해 알려주네요. 에러가 있는 서비스들은 따로 제가 조회신청을 하지 않았기 때문에 에러출력되는 것이 당연합니다.</p>
<figure data-ke-type="image" data-ke-mobilestyle="widthOrigin" data-ke-style="alignCenter"><img decoding="async" src="https://blog.kakaocdn.net/dn/80pcc/btsJEELugdf/yYvKWUGoBkK44hR3MSgijK/img.png" data-is-animation="false" data-origin-width="2668" data-origin-height="626" data-filename="스크린샷 2024-09-14 오후 12.21.49.png" alt="img" title="파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리) 13"><figcaption>파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)</figcaption></figure>
<p>이름설명데이터 타입샘플 데이터항목구분</p>
<table style="background-color: #ffffff; color: #212121; text-align: start; border-collapse: collapse; width: 100%;" border="1" data-ke-align="alignLeft">
<tbody>
<tr>
<td>property_type</td>
<td>부동산 유형<br />
(아파트, 오피스텔, 단독다가구, 연립다세대, 토지, 분양입주권, 공장창고등)</td>
<td>String</td>
<td>아파트</td>
<td>필수</td>
</tr>
<tr>
<td>trade_type</td>
<td>거래 유형<br />
(매매, 전월세)</td>
<td>String</td>
<td>매매</td>
<td>필수</td>
</tr>
<tr>
<td>sigungu_code</td>
<td>시군구의 5자리 지역코드<br />
(서울 서초구: 11650, 경기 성남 분당구: 41135)</td>
<td>String</td>
<td>11650</td>
<td>필수</td>
</tr>
<tr>
<td>year_month</td>
<td>조회 년월 (단일 월 조회 시 필수)<br />
(2023년 1월: 202301)<br />
※ start_year_month와 end_year_month 모두 입력 시 기간 내 조회가 실행됨</td>
<td>String</td>
<td>202301</td>
<td>조건부 필수</td>
</tr>
<tr>
<td>start_year_month</td>
<td>조회 시작 년월 (기간 내 조회 시 필수)<br />
(2022년 1월 202201)</td>
<td>String</td>
<td>202201</td>
<td>조건부 필수</td>
</tr>
<tr>
<td>end_year_month</td>
<td>조회 종료 년월 (기간 내 조회 시 필수)<br />
(2022년 12월: 202212)</td>
<td>String</td>
<td>202212</td>
<td>조건부 필수</td>
</tr>
<tr>
<td>verbose</td>
<td>데이터 조회 진행 상황 메시지 출력 여부<br />
(출력: True, 미출력: False)<br />
※ 기본값: False</td>
<td>Boolean</td>
<td>True</td>
<td>선택</td>
</tr>
</tbody>
</table>
<ul style="list-style-type: disc; color: #555555; text-align: start;" data-ke-list-type="disc">
<li style="list-style-type: inherit; color: #666666;">지역코드</li>
<li style="list-style-type: inherit; color: #666666;">도로명</li>
<li style="list-style-type: inherit; color: #666666;">법정동</li>
<li style="list-style-type: inherit; color: #666666;">지번</li>
<li style="list-style-type: inherit; color: #666666;">아파트</li>
<li style="list-style-type: inherit; color: #666666;">건축년도</li>
<li style="list-style-type: inherit; color: #666666;">층</li>
<li style="list-style-type: inherit; color: #666666;">전용면적</li>
<li style="list-style-type: inherit; color: #666666;">년</li>
<li style="list-style-type: inherit; color: #666666;">월</li>
<li style="list-style-type: inherit; color: #666666;">일</li>
<li style="list-style-type: inherit; color: #666666;">거래금액 (만원단위)</li>
<li style="list-style-type: inherit; color: #666666;">도로명건물본번호코드</li>
<li style="list-style-type: inherit; color: #666666;">도로명건물부번호코드</li>
<li style="list-style-type: inherit; color: #666666;">도로명시군구코드</li>
<li style="list-style-type: inherit; color: #666666;">도로명일련번호코드</li>
<li style="list-style-type: inherit; color: #666666;">도로명지상지하코드</li>
<li style="list-style-type: inherit; color: #666666;">도로명코드</li>
<li style="list-style-type: inherit; color: #666666;">법정동본번코드</li>
<li style="list-style-type: inherit; color: #666666;">법정동부번코드</li>
<li style="list-style-type: inherit; color: #666666;">법정동시군구코드</li>
<li style="list-style-type: inherit; color: #666666;">법정동지번코드</li>
<li style="list-style-type: inherit; color: #666666;">일련번호</li>
<li style="list-style-type: inherit; color: #666666;">거래유형</li>
<li style="list-style-type: inherit; color: #666666;">중개사소재지</li>
<li style="list-style-type: inherit; color: #666666;">해제사유발생일</li>
<li style="list-style-type: inherit; color: #666666;">해제여부</li>
</ul>
<p style="color: #555555; text-align: start;">전체 컬럼은 위와 같습니다. 꽤 많기도하고&#8230; 숫자코드만 있어서 얼핏보면 이게 뭘 의미하는지 모르는 내용들도 많습니다. 그래서 필요한 컬럼들은 제외하고 뺄껀 빼주고, 여기서 추가되어야할 컬럼이 있으면 추가작업을 해주어야합니다.</p>
<h2 id="서울아파트-매매가-조회해보기" style="color: #000000; text-align: start;">서울아파트 매매가 조회해보기</h2>
<p style="color: #555555; text-align: start;">일단 처음으로는 서울 모든 구의 아파트 매매가를 조회해보는 것으로 시작하겠습니다.</p>

<h3 id="라이브러리를-이용한-api연결" style="color: #000000; text-align: start;">라이브러리를 이용한 API연결</h3>
<p style="color: #555555; text-align: start;">일단 파일의 제일 윗부분에는 필요한 다른 파일들을 import하고, 컨버터의 객체생성과 함께 API연결을 선언합니다.</p>
<pre class="bash hljs" style="color: #555555; text-align: start;" contenteditable="false" data-ke-language="bash">import json
import os
import pandas as pd
from google.colab import drive
import PublicDataReader as pdr
from PublicDataReader import TransactionPrice
<a href="https://2days.kr/30/11/12/70250/aboda/">api</a> = pdr.TransactionPrice(service_key)

class DistrictConverter:
    def __init__(self):
        self.districts = self.__read_district_file()

    def __read_district_file(self):
        <span class="hljs-comment"># Google 드라이브를 마운트합니다.</span>
        drive.mount(<span class="hljs-string">'/content/drive'</span>)

        <span class="hljs-comment"># 드라이브 내의 JSON 파일 경로를 설정합니다.</span>
        json_file_path = <span class="hljs-string">'/content/drive/MyDrive/district.json'</span>
        
        <span class="hljs-comment"># 파일을 열어서 내용을 읽고 JSON으로 변환합니다.</span>
        with open(json_file_path, <span class="hljs-string">'r'</span>) as f:
            <span class="hljs-built_in">return</span> json.loads(f.read())

    def get_si_do_code(self, si_do_name):
        <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> self.districts:
            <span class="hljs-keyword">if</span> si_do_name == district[<span class="hljs-string">"si_do_name"</span>]:
                <span class="hljs-built_in">return</span> district[<span class="hljs-string">"si_do_code"</span>]

    def get_sigungu(self, si_do_code):
        <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> self.districts:
            <span class="hljs-keyword">if</span> si_do_code == district[<span class="hljs-string">"si_do_code"</span>]:
                <span class="hljs-built_in">return</span> district[<span class="hljs-string">"sigungu"</span>]</pre>
<h3 id="입력받은-시군구-리스트에-대해서-매매가-조회하는-메소드-만들기" style="color: #000000; text-align: start;">입력받은 시군구 리스트에 대해서 매매가 조회하는 메소드 만들기</h3>
<p style="color: #555555; text-align: start;">이전 포스트와, 본 포스트 상단에 라이브러리로 넘기는 파라미터에서 보이듯이, 조회는 시군구 코드를 기준으로 조회하는데요 조회하고자하는 시군구가 여러개 일 수 있으므로, 시군구 데이터를 리스트로 받아 반복문을 돌리며 조회하는 메소드를 만듭니다.</p>
<p style="color: #555555; text-align: start;">이 때, API를 조회한 데이터에는 이것이 어떤 시/도의, 어떤 시군구의 데이터인지는 알 수 없습니다. 표시되는 것은 도로명과 읍면동 단위의 데이터만 한글로 나옵니다. (아마도 시군구코드를 넣어서 조회하는 것으로 보아, 조회할 때 이미 어떤 지역인지를 콕 찝어서 조회한다는 유저시나리오를 바탕으로 설계되어있는 것 같습니다.)</p>
<p style="color: #555555; text-align: start;">따라서, 우리가 결과물을 받아서 어디 데이터인지를 알기 위해서는 시/도 이름과, 시군구이름도 같이 표기되어야 알기 쉽습니다.</p>
<pre class="bash hljs" style="color: #555555; text-align: start;" contenteditable="false" data-ke-language="bash"><span class="hljs-comment"># DistrictConverter 인스턴스 생성</span>
converter = DistrictConverter()

<span class="hljs-comment"># 서울특별시 시/군/구 코드 리스트 가져오기</span>
si_do_name = <span class="hljs-string">"서울특별시"</span>
si_do_code = converter.get_si_do_code(si_do_name)
sigungu_list = converter.get_sigungu(si_do_code)

<span class="hljs-comment"># 모든 시/군/구 데이터를 수집할 DataFrame 초기화</span>
all_data = pd.DataFrame()

<span class="hljs-comment"># 각 시/군/구 코드에 대해 데이터를 가져오고 시/군/구 이름 추가</span>
<span class="hljs-keyword">for</span> sigungu <span class="hljs-keyword">in</span> sigungu_list:
    sigungu_code = sigungu[<span class="hljs-string">"sigungu_code"</span>]
    sigungu_name = sigungu[<span class="hljs-string">"sigungu_name"</span>]

    <span class="hljs-built_in">print</span>(f<span class="hljs-string">"Processing data for {sigungu_name} ({sigungu_code})"</span>)</pre>
<p style="color: #555555; text-align: start;">파라미터로 시/도 이름, 시군구 데이터가 담긴 리스트, 매물종류, 거래종류, 거래년월 6자리를 받습니다. 이후 시군구리스트에 대해 반복문을 돌아가며 조회를 시작합니다.</p>
<p style="color: #555555; text-align: start;">조회한 데이터 data 에 대해, 위에서 말씀드린대로 시도 이름과 시군구 이름이 기재된 컬럼으로 생성해줍니다. sigungu_list 에 데이터 하나하나에는 sigungu_code, sigungu_name, eup_myeon_dong 데이터가 json형태로 들어있습니다. 본 시리즈의 2번째 포스트(지역구분별 코드 먼저 준비하기) 를 확인해주세요.</p>
<p style="color: #555555; text-align: start;">data[&#8220;시군구&#8221;] = sigungu[&#8220;sigungu_name&#8221;]</p>
<p style="color: #555555; text-align: start;">이렇게 시군구 json객체 하나하나에서 시군구이름을 뽑아 컬럼을 하나 만들어줍니다. 그 후에는 기존에 만들었던 시군구 데이터에, 바로 아래에 추가로 데이터를 이어붙여줍니다.</p>
<p style="color: #555555; text-align: start;">df = pd.concat([data, df])</p>
<p style="color: #555555; text-align: start;">이렇게해서 서울의 모든 구의 매매데이터를 하나하나 붙여나갑니다.</p>
<p style="color: #555555; text-align: start;">이 후에, 아까 위에서 만든 전용면적(평) 계산 메소드를 호출해줍니다.<br />
df = caculate_column_data(df)</p>
<p style="color: #555555; text-align: start;">그러고 마지막으로 컬럼이름을 재정의해주고, 추출한 매매데이터를 리턴합니다. 저는 개인적으로 년, 월, 일 컬럼이 조금 알기 어렵다고 생각해서 아래와 같이 수정했습니다.</p>
<pre class="bash hljs" style="color: #555555; text-align: start;" contenteditable="false" data-ke-language="bash"> <span class="hljs-comment"># 부동산 데이터를 가져옴</span>
    df = api.get_data(
        property_type=<span class="hljs-string">"아파트"</span>,
        trade_type=<span class="hljs-string">"매매"</span>,
        sigungu_code=sigungu_code,
        year_month=<span class="hljs-string">"202402"</span>,
    )</pre>
<p style="color: #555555; text-align: start;">본 메소드의 전체 코드는 아래와 같습니다.</p>
<pre class="hljs reasonml" style="color: #555555; text-align: start;" contenteditable="false">def get<span class="hljs-constructor">_data_using_sigungu_list(<span class="hljs-params">si_do_name</span>, <span class="hljs-params">sigungu_list</span>: <span class="hljs-params">list</span>, <span class="hljs-params">product</span>, <span class="hljs-params">transaction</span>, <span class="hljs-params">year_month</span>)</span>:
    df = pd.<span class="hljs-constructor">DataFrame()</span>

    for sigungu <span class="hljs-keyword">in</span> sigungu_list:
        data = get<span class="hljs-constructor">_data_from_portal(<span class="hljs-params">product</span>, <span class="hljs-params">transaction</span>, <span class="hljs-params">sigungu</span>[<span class="hljs-string">"sigungu_code"</span>], <span class="hljs-params">year_month</span>)</span>
        data<span class="hljs-literal">["시도"]</span> = si_do_name
        data<span class="hljs-literal">["시군구"]</span> = sigungu<span class="hljs-literal">["<span class="hljs-identifier">sigungu_name</span>"]</span>
        df = pd.concat(<span class="hljs-literal">[<span class="hljs-identifier">data</span>, <span class="hljs-identifier">df</span>]</span>)

    df = caculate<span class="hljs-constructor">_column_data(<span class="hljs-params">df</span>)</span>

    df.rename(columns={<span class="hljs-string">"년"</span>: <span class="hljs-string">"거래년도"</span>,
                       <span class="hljs-string">"월"</span>: <span class="hljs-string">"거래월"</span>,
                       <span class="hljs-string">"일"</span>: <span class="hljs-string">"거래일"</span>
                       },
              inplace=True)

    return df</pre>
<h3 id="서울-데이터만-조회하는-메소드-만들기" style="color: #000000; text-align: start;">서울 데이터만 조회하는 메소드 만들기</h3>
<p style="color: #555555; text-align: start;">입력받은 시군구 리스트를 대상으로 매매데이터를 조회하여 리턴하는 메소드가 완성되었습니다. 그럼 이제 어느 시/도의 시군구를 파라미터로 넘겨줘야하냐, 이게 남았습니다.</p>
<p style="color: #555555; text-align: start;">
<p style="color: #555555; text-align: start;">저는 이번 시리즈 예시에서 일단 서울 데이터만 조회하는 메소드를 만들고 있어서, 서울 시도코드만 따로 추출하는 메소드를 만들어봅니다.</p>
<pre class="bash hljs" style="color: #555555; text-align: start;" contenteditable="false" data-ke-language="bash"><span class="hljs-comment"># 시/군/구 이름 및 시/도 이름을 새로운 컬럼으로 추가</span>
    df[<span class="hljs-string">"sigungu_name"</span>] = sigungu_name
    df[<span class="hljs-string">"si_do_name"</span>] = si_do_name  <span class="hljs-comment"># 서울특별시 추가</span>

    <span class="hljs-comment"># 가져온 데이터를 all_data에 추가</span>
    all_data = pd.concat([all_data, df], ignore_index=True)</pre>
<p style="color: #555555; text-align: start;">여기에, 마지막으로 인덱스를 리셋해주고, 컬럼들을 제가 원하는 컬럼만으로 간추립니다.</p>
<pre class="bash hljs" style="color: #555555; text-align: start;" contenteditable="false" data-ke-language="bash"><span class="hljs-comment"># 필요한 열만 선택하여 데이터 간추리기</span>
columns_to_select = {
    <span class="hljs-string">"si_do_name"</span>: <span class="hljs-string">"시도"</span>,          <span class="hljs-comment"># 시도</span>
    <span class="hljs-string">"sigungu_name"</span>: <span class="hljs-string">"시군구"</span>,      <span class="hljs-comment"># 시군구</span>
    <span class="hljs-string">"umdNm"</span>: <span class="hljs-string">"법정동"</span>,             <span class="hljs-comment"># 법정동</span>
    <span class="hljs-string">"roadNm"</span>: <span class="hljs-string">"도로명"</span>,            <span class="hljs-comment"># 도로명</span>
    <span class="hljs-string">"bonbun"</span>: <span class="hljs-string">"지번"</span>,              <span class="hljs-comment"># 지번 (본번)</span>
    <span class="hljs-string">"aptNm"</span>: <span class="hljs-string">"아파트"</span>,             <span class="hljs-comment"># 아파트</span>
    <span class="hljs-string">"buildYear"</span>: <span class="hljs-string">"건축년도"</span>,       <span class="hljs-comment"># 건축년도</span>
    <span class="hljs-string">"excluUseAr"</span>: <span class="hljs-string">"전용면적"</span>,      <span class="hljs-comment"># 전용면적</span>
    <span class="hljs-string">"floor"</span>: <span class="hljs-string">"층"</span>,                <span class="hljs-comment"># 거래층</span>
    <span class="hljs-string">"dealYear"</span>: <span class="hljs-string">"거래년도"</span>,        <span class="hljs-comment"># 거래년도</span>
    <span class="hljs-string">"dealMonth"</span>: <span class="hljs-string">"거래월"</span>,         <span class="hljs-comment"># 거래월</span>
    <span class="hljs-string">"dealDay"</span>: <span class="hljs-string">"거래일"</span>,           <span class="hljs-comment"># 거래일</span>
    <span class="hljs-string">"dealAmount"</span>: <span class="hljs-string">"거래금액"</span>,      <span class="hljs-comment"># 거래금액</span>
    <span class="hljs-string">"aptSeq"</span>: <span class="hljs-string">"일련번호"</span>,          <span class="hljs-comment"># 일련번호</span>
    <span class="hljs-string">"dealingGbn"</span>: <span class="hljs-string">"거래유형"</span>,      <span class="hljs-comment"># 거래유형</span>
    <span class="hljs-string">"estateAgentSggNm"</span>: <span class="hljs-string">"중개사소재지"</span>,  <span class="hljs-comment"># 중개사소재지</span>
    <span class="hljs-string">"cdealType"</span>: <span class="hljs-string">"해제여부"</span>,       <span class="hljs-comment"># 해제여부</span>
    <span class="hljs-string">"cdealDay"</span>: <span class="hljs-string">"해제사유발생일"</span>   <span class="hljs-comment"># 해제사유발생일</span>
}</pre>
<p style="color: #555555; text-align: start;">제가 원하는 컬럼목록은 아래와 같습니다.</p>
<pre class="bash hljs" style="color: #555555; text-align: start;" contenteditable="false" data-ke-language="bash">    <span class="hljs-string">"시도"</span>,
    <span class="hljs-string">"시군구"</span>,
    <span class="hljs-string">"법정동"</span>,
    <span class="hljs-string">"도로명"</span>,
    <span class="hljs-string">"지번"</span>,
    <span class="hljs-string">"아파트"</span>,
    <span class="hljs-string">"건축년도"</span>,
    <span class="hljs-string">"전용면적"</span>,
    <span class="hljs-string">"전용면적(평)"</span>,
    <span class="hljs-string">"거래년도"</span>,
    <span class="hljs-string">"거래월"</span>,
    <span class="hljs-string">"거래일"</span>,
    <span class="hljs-string">"거래금액"</span>,
    <span class="hljs-string">"일련번호"</span>,
    <span class="hljs-string">"거래유형"</span>,
    <span class="hljs-string">"중개사소재지"</span>,
    <span class="hljs-string">"해제여부"</span>,
    <span class="hljs-string">"해제사유발생일"</span>

]</pre>
<p style="color: #555555; text-align: start;">이렇게해서  내용이 일단 완료되었습니다. 전체 코드는 아래와 같습니다.</p>
<pre class="bash hljs" style="color: #555555; text-align: start;" contenteditable="false" data-ke-language="bash">import json
import os
import pandas as pd
from google.colab import drive
import PublicDataReader as pdr
from PublicDataReader import TransactionPrice
api = pdr.TransactionPrice(service_key)

class DistrictConverter:
    def __init__(self):
        self.districts = self.__read_district_file()

    def __read_district_file(self):
        <span class="hljs-comment"># Google 드라이브를 마운트합니다.</span>
        drive.mount(<span class="hljs-string">'/content/drive'</span>)

        <span class="hljs-comment"># 드라이브 내의 JSON 파일 경로를 설정합니다.</span>
        json_file_path = <span class="hljs-string">'/content/drive/MyDrive/district.json'</span>
        
        <span class="hljs-comment"># 파일을 열어서 내용을 읽고 JSON으로 변환합니다.</span>
        with open(json_file_path, <span class="hljs-string">'r'</span>) as f:
            <span class="hljs-built_in">return</span> json.loads(f.read())

    def get_si_do_code(self, si_do_name):
        <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> self.districts:
            <span class="hljs-keyword">if</span> si_do_name == district[<span class="hljs-string">"si_do_name"</span>]:
                <span class="hljs-built_in">return</span> district[<span class="hljs-string">"si_do_code"</span>]

    def get_sigungu(self, si_do_code):
        <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> self.districts:
            <span class="hljs-keyword">if</span> si_do_code == district[<span class="hljs-string">"si_do_code"</span>]:
                <span class="hljs-built_in">return</span> district[<span class="hljs-string">"sigungu"</span>]

<span class="hljs-comment"># DistrictConverter 인스턴스 생성</span>
converter = DistrictConverter()

<span class="hljs-comment"># 서울특별시 시/군/구 코드 리스트 가져오기</span>
si_do_name = <span class="hljs-string">"서울특별시"</span>
si_do_code = converter.get_si_do_code(si_do_name)
sigungu_list = converter.get_sigungu(si_do_code)

<span class="hljs-comment"># 모든 시/군/구 데이터를 수집할 DataFrame 초기화</span>
all_data = pd.DataFrame()

<span class="hljs-comment"># 각 시/군/구 코드에 대해 데이터를 가져오고 시/군/구 이름 추가</span>
<span class="hljs-keyword">for</span> sigungu <span class="hljs-keyword">in</span> sigungu_list:
    sigungu_code = sigungu[<span class="hljs-string">"sigungu_code"</span>]
    sigungu_name = sigungu[<span class="hljs-string">"sigungu_name"</span>]

    <span class="hljs-built_in">print</span>(f<span class="hljs-string">"Processing data for {sigungu_name} ({sigungu_code})"</span>)

    <span class="hljs-comment"># 부동산 데이터를 가져옴</span>
    df = api.get_data(
        property_type=<span class="hljs-string">"아파트"</span>,
        trade_type=<span class="hljs-string">"매매"</span>,
        sigungu_code=sigungu_code,
        year_month=<span class="hljs-string">"202402"</span>,
    )

    <span class="hljs-comment"># 시/군/구 이름 및 시/도 이름을 새로운 컬럼으로 추가</span>
    df[<span class="hljs-string">"sigungu_name"</span>] = sigungu_name
    df[<span class="hljs-string">"si_do_name"</span>] = si_do_name  <span class="hljs-comment"># 서울특별시 추가</span>

    <span class="hljs-comment"># 가져온 데이터를 all_data에 추가</span>
    all_data = pd.concat([all_data, df], ignore_index=True)

<span class="hljs-comment"># 필요한 열만 선택하여 데이터 간추리기</span>
<span class="hljs-comment"># 필요한 열만 선택하여 데이터 간추리기</span>
columns_to_select = {
    <span class="hljs-string">"si_do_name"</span>: <span class="hljs-string">"시도"</span>,          <span class="hljs-comment"># 시도</span>
    <span class="hljs-string">"sigungu_name"</span>: <span class="hljs-string">"시군구"</span>,      <span class="hljs-comment"># 시군구</span>
    <span class="hljs-string">"umdNm"</span>: <span class="hljs-string">"법정동"</span>,             <span class="hljs-comment"># 법정동</span>
    <span class="hljs-string">"roadNm"</span>: <span class="hljs-string">"도로명"</span>,            <span class="hljs-comment"># 도로명</span>
    <span class="hljs-string">"bonbun"</span>: <span class="hljs-string">"지번"</span>,              <span class="hljs-comment"># 지번 (본번)</span>
    <span class="hljs-string">"aptNm"</span>: <span class="hljs-string">"아파트"</span>,             <span class="hljs-comment"># 아파트</span>
    <span class="hljs-string">"buildYear"</span>: <span class="hljs-string">"건축년도"</span>,       <span class="hljs-comment"># 건축년도</span>
    <span class="hljs-string">"excluUseAr"</span>: <span class="hljs-string">"전용면적"</span>,      <span class="hljs-comment"># 전용면적</span>
    <span class="hljs-string">"floor"</span>: <span class="hljs-string">"층"</span>,                <span class="hljs-comment"># 거래층</span>
    <span class="hljs-string">"dealYear"</span>: <span class="hljs-string">"거래년도"</span>,        <span class="hljs-comment"># 거래년도</span>
    <span class="hljs-string">"dealMonth"</span>: <span class="hljs-string">"거래월"</span>,         <span class="hljs-comment"># 거래월</span>
    <span class="hljs-string">"dealDay"</span>: <span class="hljs-string">"거래일"</span>,           <span class="hljs-comment"># 거래일</span>
    <span class="hljs-string">"dealAmount"</span>: <span class="hljs-string">"거래금액"</span>,      <span class="hljs-comment"># 거래금액</span>
    <span class="hljs-string">"aptSeq"</span>: <span class="hljs-string">"일련번호"</span>,          <span class="hljs-comment"># 일련번호</span>
    <span class="hljs-string">"dealingGbn"</span>: <span class="hljs-string">"거래유형"</span>,      <span class="hljs-comment"># 거래유형</span>
    <span class="hljs-string">"estateAgentSggNm"</span>: <span class="hljs-string">"중개사소재지"</span>,  <span class="hljs-comment"># 중개사소재지</span>
    <span class="hljs-string">"cdealType"</span>: <span class="hljs-string">"해제여부"</span>,       <span class="hljs-comment"># 해제여부</span>
    <span class="hljs-string">"cdealDay"</span>: <span class="hljs-string">"해제사유발생일"</span>   <span class="hljs-comment"># 해제사유발생일</span>
}

<span class="hljs-comment"># 필요한 열만 선택하여 데이터프레임을 새로 생성하고, 열 이름을 한글로 변경</span>
selected_data = all_data[list(columns_to_select.keys())].rename(columns=columns_to_select)

<span class="hljs-comment"># 파일명을 규칙적으로 지정: 서울특별시_202401_매매.csv</span>
file_name = f<span class="hljs-string">'{si_do_name}_202401_매매.csv'</span>.replace(<span class="hljs-string">" "</span>, <span class="hljs-string">""</span>)  <span class="hljs-comment"># 파일명에서 공백 제거</span>

<span class="hljs-comment"># 필요한 열만 남긴 데이터를 CSV 파일로 저장</span>
csv_path = f<span class="hljs-string">'/content/drive/MyDrive/{file_name}'</span>
selected_data.to_csv(csv_path, index=False)

<span class="hljs-comment"># 파일 저장 후, 선택된 데이터의 일부를 출력하여 확인</span>
<span class="hljs-built_in">print</span>(selected_data.head())</pre>
<h3 id="주피터-파일에서-만든-메소드를-이용해서-매매가-구해보기" style="color: #000000; text-align: start;">코랩에서 데이터 활용 이용해서 매매가 구해보기</h3>
<p style="color: #555555; text-align: start;">이제, 코랩에서 해당 데이터를 실행해봅니다.</p>
<figure data-ke-type="image" data-ke-mobilestyle="widthOrigin" data-ke-style="alignCenter"><img decoding="async" src="https://blog.kakaocdn.net/dn/lFPoM/btsJCJafVX8/J5kkehOURfLihtQZhGdKv0/img.png" data-is-animation="false" data-origin-width="2166" data-origin-height="1004" data-filename="스크린샷 2024-09-14 오후 12.28.25.png" alt="img" title="파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리) 14"><figcaption>파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)</figcaption></figure>
<p style="color: #555555; text-align: start;">그러면 아래와 같이 제가 원하는 데이터만 보기좋게 딱 나옵니다.</p>
<figure data-ke-type="image" data-ke-mobilestyle="widthOrigin" data-ke-style="alignCenter">
<p><figure style="width: 2758px" class="wp-caption alignnone"><img decoding="async" src="https://blog.kakaocdn.net/dn/uMtGu/btsJDYwShyi/XK6GIG1yQ5KHJNU9NvjJs1/img.png" alt="파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)" width="2758" height="1214" data-is-animation="false" data-origin-width="2758" data-origin-height="1214" data-filename="스크린샷 2024-09-14 오후 12.28.40.png" data-origin- title="파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리) 15"><figcaption class="wp-caption-text">파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)</figcaption></figure><figcaption>파이썬 부동산 매매가 조회 프로그램 만들기 3편 (서울아파트 컬럼 정리)</figcaption></figure>
<p style="color: #555555; text-align: start;">
데이터가 700가 훌쩍 넘는 것을 보니, 서울의 모든 구의 아파트 매매데이터가 다 나온 것 같네요.</p>
<p style="color: #555555; text-align: start;">이렇게 서울 아파트 매매 데이터를 구해보았습니다. 위에 파라미터를 아파트 로 넣었는데, 연립/다세대 매매 데이터 API에 대한 신청도 해놓으셨다면, 파라미터로 연립/다세대 를 넣으셔서 이른바 빌라 매매 데이터도 구해볼 수 있습니다.</p>
<p style="color: #555555; text-align: start;">다음 포스트에서는 서울 이외의 시도, 시군구에 대한 매매데이터를 구하는 메소드를 만들어봅니다.</p>
<p>&nbsp;</p>
<!-- AI CONTENT END 4 -->
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드)</title>
		<link>https://2days.kr/14/09/08/56521/it/program/</link>
		
		<dc:creator><![CDATA[urjent]]></dc:creator>
		<pubDate>Fri, 13 Sep 2024 23:12:10 +0000</pubDate>
				<category><![CDATA[program]]></category>
		<category><![CDATA[API키발급]]></category>
		<category><![CDATA[API활용]]></category>
		<category><![CDATA[개발자]]></category>
		<category><![CDATA[공공API]]></category>
		<category><![CDATA[공공데이터]]></category>
		<category><![CDATA[공공데이터포털]]></category>
		<category><![CDATA[데이터분석]]></category>
		<category><![CDATA[데이터수집]]></category>
		<category><![CDATA[매매가조회]]></category>
		<category><![CDATA[매물조회]]></category>
		<category><![CDATA[부동산]]></category>
		<category><![CDATA[부동산분석]]></category>
		<category><![CDATA[부동산시세]]></category>
		<category><![CDATA[부동산시장]]></category>
		<category><![CDATA[부동산자동화]]></category>
		<category><![CDATA[부동산정보]]></category>
		<category><![CDATA[시세분석]]></category>
		<category><![CDATA[시세조회]]></category>
		<category><![CDATA[실거래가조회]]></category>
		<category><![CDATA[실거래조회]]></category>
		<category><![CDATA[실거래조회기]]></category>
		<category><![CDATA[아파트매매]]></category>
		<category><![CDATA[연립다세대]]></category>
		<category><![CDATA[자동화프로그램]]></category>
		<category><![CDATA[주택매매]]></category>
		<category><![CDATA[주택시세]]></category>
		<category><![CDATA[주택정보]]></category>
		<category><![CDATA[파이썬]]></category>
		<category><![CDATA[파이썬개발]]></category>
		<category><![CDATA[파이썬프로그래밍]]></category>
		<category><![CDATA[파이썬프로젝트]]></category>
		<guid isPermaLink="false">https://2days.kr/?p=56521</guid>

					<description><![CDATA[파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드) ㅣ 지역 구분 코드 체계를 정리하는 것은 공공 데이터를 다루는 데 있어서 매우 중요한 과정입니다. 시, 도, 시군구, 읍면동의 계층적 관계를 파악하고, 이를 사용하기 쉽게 데이터 구조로 변환하는 것이 조회 및 데이터 처리 과정에서 큰 도움을 주기 때문이죠. 특히, 시군구 코드만으로도 많은 작업이 가능하지만, 다양한 상황에서 읍면동까지 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="color: #555555; text-align: start;" data-ke-size="size16"><span style="color: #000000;">파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드) ㅣ 지역 구분 코드 체계를 정리하는 것은 공공 데이터를 다루는 데 있어서 매우 중요한 과정입니다. 시, 도, 시군구, 읍면동의 계층적 관계를 파악하고, 이를 사용하기 쉽게 데이터 구조로 변환하는 것이 조회 및 데이터 처리 과정에서 큰 도움을 주기 때문이죠. 특히, 시군구 코드만으로도 많은 작업이 가능하지만, 다양한 상황에서 읍면동까지 세부적으로 사용할 일이 생길 수 있어 미리 준비해두면 좋습니다.</span></p>
<p style="color: #555555; text-align: start;" data-ke-size="size16"><span style="color: #000000;">아직 1편을 못보고 넘어오신 분들이라면 1편 먼저 보고 오시는게 좋을 것 같아요!</span></p>
<p><a href="https://aboda.kr/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%B6%80%EB%8F%99%EC%82%B0-%EB%A7%A4%EB%A7%A4%EA%B0%80-%EC%A1%B0%ED%9A%8C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8-%EB%A7%8C%EB%93%A4%EA%B8%B0-1%ED%8E%B8" target="_blank" rel="noopener">2024.09.14 &#8211; [부동산/자동화 프로젝트] &#8211; 파이썬 부동산 매매가 조회 프로그램 만들기 1편</a></p>
<h3 style="color: #555555; text-align: start;" data-ke-size="size23"><span style="color: #000000;"><b>파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드)</b></span></h3>
<figure data-ke-type="image" data-ke-mobilestyle="widthOrigin" data-ke-style="alignCenter">
<p><figure style="width: 2560px" class="wp-caption alignnone"><img loading="lazy" decoding="async" src="https://blog.kakaocdn.net/dn/mgZFS/btsJCV9a7Ql/I3FmxmR4gtnNCYkEKgkKu1/img.png" alt="파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드)" width="2560" height="2560" data-origin-width="2560" data-origin-height="2560" data-is-animation="false" data-filename="파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드).png" data-origin- title="파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드) 17"><figcaption class="wp-caption-text">파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드)</figcaption></figure><figcaption>파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드)</figcaption><b></b></figure><div class='code-block code-block-2' style='margin: 8px auto; text-align: center; display: block; clear: both;'>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8940400388075870"
     crossorigin="anonymous"></script>
<!-- 중간 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-8940400388075870"
     data-ad-slot="8794586137"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>

<h3 style="background-color: #ffffff; color: #0d0d0d; text-align: start;"><span style="color: #000000;">지역 구분 코드 구조</span></h3>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;"><span style="color: #000000;">지역 구분 코드는 기본적으로 1: N 관계를 따릅니다. 즉, 하나의 시, 도 아래 여러 시군구가 있고, 다시 하나의 시군구 아래 여러 읍면동이 있는 형태입니다. 이러한 구조를 효율적으로 관리하려면 계층적 관계를 잘 표현할 수 있는 데이터 형식을 사용하는 것이 좋습니다. 여기서는 <b>JSON</b> 형식으로 시, 도, 시군구, 읍면동 코드를 정리해보겠습니다.</span></p>
<figure style="color: #333333; text-align: center;" data-ke-mobilestyle="widthOrigin" data-ke-style="alignCenter" data-ke-type="image"><img decoding="async" src="https://blog.kakaocdn.net/dn/b2d3Z8/btsJCIPNcBo/UwIg1KjfviXu6AfvsKmTO1/img.png" data-is-animation="false" data-origin-width="1280" data-origin-height="892" data-phocus-index="1" alt="img" title="파이썬 부동산 매매가 조회 프로그램 만들기 2편 (지역코드) 18"></figure>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;"><span style="color: #000000;">어느 분이 정리를 해두셨지만 조금 불편하여 JSON 형태로 바꿔보겠습니다.</span></p>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;"><span style="color: #000000;"><a style="color: #000000;" href="https://github.com/WooilJeong/PublicDataReader" target="_blank" rel="noopener">https://github.com/WooilJeong/PublicDataReader</a></span></p>
<figure id="og_1726263637439" contenteditable="false" data-ke-type="opengraph" data-ke-align="alignCenter" data-og-type="object" data-og-title="GitHub - WooilJeong/PublicDataReader: 공공 데이터 조회를 위한 오픈소스 파이썬 라이브러리" data-og-description="공공 데이터 조회를 위한 오픈소스 파이썬 라이브러리. Contribute to WooilJeong/PublicDataReader development by creating an account on GitHub." data-og-host="github.com" data-og-source-url="https://github.com/WooilJeong/PublicDataReader" data-og-url="https://github.com/WooilJeong/PublicDataReader" data-og-image="https://scrap.kakaocdn.net/dn/6TsCS/hyW2Ycwf8c/QRUvYLHFlkH8bUKkat2CO1/img.png?width=3544&amp;height=3545&amp;face=0_0_3544_3545">
<div class="og-image" style="background-image: url('https://scrap.kakaocdn.net/dn/6TsCS/hyW2Ycwf8c/QRUvYLHFlkH8bUKkat2CO1/img.png?width=3544&amp;height=3545&amp;face=0_0_3544_3545');"></div>
<div class="og-text">
<p class="og-title">GitHub &#8211; WooilJeong/PublicDataReader: 공공 데이터 조회를 위한 오픈소스 파이썬 라이브러리</p>
<p class="og-desc">공공 데이터 조회를 위한 오픈소스 파이썬 라이브러리. Contribute to WooilJeong/PublicDataReader development by creating an account on GitHub.</p>
<p class="og-host">github.com</p>
</div>
</figure>
<h3 style="background-color: #ffffff; color: #0d0d0d; text-align: start;"><span style="color: #000000;">JSON 데이터 구조 설명</span></h3>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;"><span style="color: #000000;">다음은 파이썬을 이용해 지역 구분 코드를 <b>JSON</b> 형식으로 구성한 예시입니다. si_do_code는 시도 코드를 의미하고, 그 하위에 sigungu로 시군구 정보가, 시군구 안에는 eup_myeon_dong으로 읍면동 정보가 포함되어 있습니다.</span></p>
<pre style="color: #555555; text-align: start;" contenteditable="false">{
 "si_do_code":{si_do_code},
  "si_do_name":{si_do_name},
  "sigungu":[{
      "sigungu_code":{sigungu_code},
    "sigungu_name":{sigungu_name},
    "eup_myeon_dong":[{
        "code":{code},
          "name":{name}
    }]
  }]
}</pre>
<div style="background-color: #000000;">
<div style="background-color: #000000; color: #000000;"><span style="color: #000000;">json</span></div>
<div>
<div>
<div style="background-color: #000000; color: #000000;"><span style="color: #000000;" data-state="closed">코드 복사</span></div>
</div>
</div>
<div><span style="color: #000000;">{ &#8220;si_do_code&#8221;: &#8220;{si_do_code}&#8221;, &#8220;si_do_name&#8221;: &#8220;{si_do_name}&#8221;, &#8220;sigungu&#8221;: [ { &#8220;sigungu_code&#8221;: &#8220;{sigungu_code}&#8221;, &#8220;sigungu_name&#8221;: &#8220;{sigungu_name}&#8221;, &#8220;eup_myeon_dong&#8221;: [ { &#8220;code&#8221;: &#8220;{eup_myeon_dong_code}&#8221;, &#8220;name&#8221;: &#8220;{eup_myeon_dong_name}&#8221; } ] } ] }</span></div>
</div>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;"><span style="color: #000000;">이 구조에서는:</span></p>
<ul style="list-style-type: disc; background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-list-type="disc">
<li><span style="color: #000000;"><b>시/도</b>: si_do_code와 si_do_name으로 표시됩니다. 각 시/도는 고유한 코드와 이름을 가지고 있습니다.</span></li>
<li><span style="color: #000000;"><b>시군구</b>: sigungu_code와 sigungu_name은 시군구를 나타내며, 이는 시도 아래에 속하는 여러 시군구를 나열합니다.</span></li>
<li><span style="color: #000000;"><b>읍면동</b>: code와 name은 읍면동의 코드와 이름으로, 시군구 아래에 속하는 읍면동 리스트를 포함합니다.</span></li>
</ul>
<figure contenteditable="false" data-ke-type="file" data-file-name="district.json" data-ke-align="alignCenter" data-file-size="1894965" data-file-mimetype="application/json">
<div class="image"></div>
<div class="desc">
<p class="filename"><span class="name">district</span><span class="type">.json</span></p>
<p class="size">1.81MB</p>
</div>
</figure>
<p style="color: #555555; text-align: start;" data-ke-size="size16"><span style="color: #000000;">저는 이 구조를 구글 드라이브 코랩에서 실행할 수 있도록 코드를 작성할 예정입니다. 구글 코랩에서는 무료로 쉽게 코드를 실행하거나 동작시킬 수 있거든요</span></p>
<p style="color: #555555; text-align: start;" data-ke-size="size16"><span style="color: #000000;"><a style="color: #000000;" href="https://colab.research.google.com/?hl=ko" target="_blank" rel="noopener noreferrer noopener">https://colab.research.google.com/?hl=ko</a></span></p>
<figure id="og_1726267893378" contenteditable="false" data-ke-type="opengraph" data-ke-align="alignCenter" data-og-type="article" data-og-title="Google Colab" data-og-description="" data-og-host="colab.research.google.com" data-og-source-url="https://colab.research.google.com/?hl=ko" data-og-url="https://colab.research.google.com/?hl=ko" data-og-image="https://scrap.kakaocdn.net/dn/bI3GJE/hyW2YXVjwF/AXKN19ym9JPcikvljjHhd1/img.png?width=260&amp;height=260&amp;face=0_0_260_260">
<div class="og-image" style="background-image: url('https://scrap.kakaocdn.net/dn/bI3GJE/hyW2YXVjwF/AXKN19ym9JPcikvljjHhd1/img.png?width=260&amp;height=260&amp;face=0_0_260_260');"></div>
<div class="og-text">
<p class="og-title">Google Colab</p>
<p class="og-desc">
<p class="og-host">colab.research.google.com</p>
</div>
</figure>
<p><span style="color: #000000;">구글 코랩에서 JSON 파일을 불러오기 위해서 구글 드라이브에 JSON 파일을 업로드 해둡니다. 저는 기본 폴더에 저장했습니다.</span></p>
<p><span style="color: #000000;">코드는 DistrictConverter 클래스를 이용하여, Google 드라이브에서 JSON 파일을 읽고, 여러 가지 데이터를 반환하는 메서드들을 포함하고 있습니다. 이 클래스의 메서드들을 살펴보겠습니다.</span></p>

<h3 style="background-color: #ffffff; color: #0d0d0d; text-align: start;"><span style="color: #000000;">주요 메서드 설명:</span></h3>
<ol style="list-style-type: decimal; background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-list-type="decimal">
<li><span style="color: #000000;"><b>get_data()</b>:</span>
<ul style="list-style-type: disc;" data-ke-list-type="disc">
<li><span style="color: #000000;">JSON 파일에서 읽어온 모든 데이터를 반환합니다.</span></li>
</ul>
</li>
<li><span style="color: #000000;"><b>get_si_do_name(si_do)</b>:</span>
<ul style="list-style-type: disc;" data-ke-list-type="disc">
<li><span style="color: #000000;">입력받은 si_do (시/도의 이름)을 포함하는 si_do_name을 반환합니다.</span></li>
</ul>
</li>
<li><span style="color: #000000;"><b>get_si_do_code(si_do_name)</b>:</span>
<ul style="list-style-type: disc;" data-ke-list-type="disc">
<li><span style="color: #000000;">입력받은 si_do_name과 일치하는 시/도의 코드를 반환합니다.</span></li>
</ul>
</li>
<li><span style="color: #000000;"><b>get_sigungu(si_do_code)</b>:</span>
<ul style="list-style-type: disc;" data-ke-list-type="disc">
<li><span style="color: #000000;">입력된 si_do_code와 일치하는 시/도 내의 모든 시/군/구 데이터를 반환합니다.</span></li>
</ul>
</li>
<li><span style="color: #000000;"><b>get_sigungu_list(si_do_code, sigungu_name)</b>:</span>
<ul style="list-style-type: disc;" data-ke-list-type="disc">
<li><span style="color: #000000;">특정 시/도의 코드와 시/군/구 이름을 입력받아 해당하는 시/군/구 리스트를 반환합니다.</span></li>
</ul>
</li>
</ol>
<pre id="code_1726268011458" class="bash hljs" contenteditable="false" data-ke-language="bash" data-ke-type="codeblock">import json
import os
from google.colab import drive

class DistrictConverter:
    def __init__(self):
        self.districts = self.__read_district_file()

    def __read_district_file(self):
        <span class="hljs-comment"># Google 드라이브를 마운트합니다.</span>
        drive.mount(<span class="hljs-string">'/content/drive'</span>)

        <span class="hljs-comment"># 드라이브 내의 JSON 파일 경로를 설정합니다.</span>
        <span class="hljs-comment"># 이 부분을 실제 파일 경로로 수정해야 합니다.</span>
        json_file_path = <span class="hljs-string">'/content/drive/MyDrive/district.json'</span>
        
        <span class="hljs-comment"># 파일을 열어서 내용을 읽고 JSON으로 변환합니다.</span>
        with open(json_file_path, <span class="hljs-string">'r'</span>) as f:
            <span class="hljs-built_in">return</span> json.loads(f.read())

    def get_data(self):
        <span class="hljs-built_in">return</span> self.districts

    def get_si_do_name(self, si_do):
        <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> self.districts:
            <span class="hljs-keyword">if</span> si_do <span class="hljs-keyword">in</span> district[<span class="hljs-string">"si_do_name"</span>]:
                <span class="hljs-built_in">return</span> district[<span class="hljs-string">"si_do_name"</span>]

    def get_si_do_code(self, si_do_name):
        <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> self.districts:
            <span class="hljs-keyword">if</span> si_do_name <span class="hljs-keyword">in</span> district[<span class="hljs-string">"si_do_name"</span>]:
                <span class="hljs-built_in">return</span> district[<span class="hljs-string">"si_do_code"</span>]

    def get_sigungu(self, si_do_code):
        <span class="hljs-keyword">for</span> district <span class="hljs-keyword">in</span> self.districts:
            <span class="hljs-keyword">if</span> si_do_code <span class="hljs-keyword">in</span> district[<span class="hljs-string">"si_do_code"</span>]:
                <span class="hljs-built_in">return</span> district[<span class="hljs-string">"sigungu"</span>]

    def get_sigungu_list(self, si_do_code, sigungu_name):
        sigungu_list = []
        sigungu_data = self.get_sigungu(si_do_code)
        <span class="hljs-keyword">for</span> sigungu <span class="hljs-keyword">in</span> sigungu_data:
            <span class="hljs-keyword">if</span> sigungu_name <span class="hljs-keyword">in</span> sigungu[<span class="hljs-string">"sigungu_name"</span>]:
                sigungu_list.append(sigungu)

        <span class="hljs-built_in">return</span> sigungu_list</pre>
<p><span style="color: #000000;">이렇게 작성하면 구글 코랩에서 준비작업은 끝났습니다. </span></p>
<p><span style="color: #000000;">잘 동작이 되는지 한번 볼까요? 프린트를 찍어서 출력을 한번 해보도록 하겠습니다.</span></p>
<pre id="code_1726268156836" class="bash hljs" contenteditable="false" data-ke-language="bash" data-ke-type="codeblock"><span class="hljs-comment"># 전체 데이터 출력</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">"전체 데이터:"</span>)
<span class="hljs-built_in">print</span>(converter.get_data())

<span class="hljs-comment"># 시/도 이름 출력</span>
si_do_name = converter.get_si_do_name(<span class="hljs-string">"서울특별시"</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">"\n시/도 이름:"</span>)
<span class="hljs-built_in">print</span>(si_do_name)

<span class="hljs-comment"># 시/도 코드 출력</span>
si_do_code = converter.get_si_do_code(<span class="hljs-string">"서울특별시"</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">"\n시/도 코드:"</span>)
<span class="hljs-built_in">print</span>(si_do_code)

<span class="hljs-comment"># 해당 시/도 코드의 시/군/구 데이터 출력</span>
sigungu_data = converter.get_sigungu(si_do_code)
<span class="hljs-built_in">print</span>(<span class="hljs-string">"\n시/군/구 데이터:"</span>)
<span class="hljs-built_in">print</span>(sigungu_data)

<span class="hljs-comment"># 특정 시/군/구 리스트 출력</span>
sigungu_list = converter.get_sigungu_list(si_do_code, <span class="hljs-string">"강남구"</span>)
<span class="hljs-built_in">print</span>(<span class="hljs-string">"\n필터된 시/군/구 리스트:"</span>)
<span class="hljs-built_in">print</span>(sigungu_list)</pre>
<p><span style="color: #000000;">결과값은 아래와 같이 도출이 됩니다. </span></p>
<p><span style="color: #000000;">서울시 전체 구, 강남구에 속한 동 까지 잘 출력이 되고 있네요.</span></p>
<div style="background-color: #ffffff; color: #212121; text-align: start;">
<div>
<div>
<div>
<div id="cell-VNgeCbovdcWu">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<pre class="hljs 1c" style="color: #000000;" contenteditable="false">시/군/구 데이터:
[{'sigungu_code': '<span class="hljs-number">1111</span>0', 'sigungu_name': '종로구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1111000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1111010100</span>', 'name': '청운동'}, {'code': '<span class="hljs-number">1111010200</span>', 'name': '신교동'}, {'code': '<span class="hljs-number">1111010300</span>', 'name': '궁정동'}, {'code': '<span class="hljs-number">1111010400</span>', 'name': '효자동'}, {'code': '<span class="hljs-number">1111010500</span>', 'name': '창성동'}, {'code': '<span class="hljs-number">1111010600</span>', 'name': '통의동'}, {'code': '<span class="hljs-number">1111010700</span>', 'name': '적선동'}, {'code': '<span class="hljs-number">1111010800</span>', 'name': '통인동'}, {'code': '<span class="hljs-number">1111010900</span>', 'name': '누상동'}, {'code': '<span class="hljs-number">1111011000</span>', 'name': '누하동'}, {'code': '<span class="hljs-number">1111011100</span>', 'name': '옥인동'}, {'code': '<span class="hljs-number">1111011200</span>', 'name': '체부동'}, {'code': '<span class="hljs-number">1111011300</span>', 'name': '필운동'}, {'code': '<span class="hljs-number">1111011400</span>', 'name': '내자동'}, {'code': '<span class="hljs-number">1111011500</span>', 'name': '사직동'}, {'code': '<span class="hljs-number">1111011600</span>', 'name': '도렴동'}, {'code': '<span class="hljs-number">1111011700</span>', 'name': '당주동'}, {'code': '<span class="hljs-number">1111011800</span>', 'name': '내수동'}, {'code': '<span class="hljs-number">1111011900</span>', 'name': '세종로'}, {'code': '<span class="hljs-number">1111012000</span>', 'name': '신문로1가'}, {'code': '<span class="hljs-number">1111012100</span>', 'name': '신문로2가'}, {'code': '<span class="hljs-number">1111012200</span>', 'name': '청진동'}, {'code': '<span class="hljs-number">1111012300</span>', 'name': '서린동'}, {'code': '<span class="hljs-number">1111012400</span>', 'name': '수송동'}, {'code': '<span class="hljs-number">1111012500</span>', 'name': '중학동'}, {'code': '<span class="hljs-number">1111012600</span>', 'name': '종로1가'}, {'code': '<span class="hljs-number">1111012700</span>', 'name': '공평동'}, {'code': '<span class="hljs-number">1111012800</span>', 'name': '관훈동'}, {'code': '<span class="hljs-number">1111012900</span>', 'name': '견지동'}, {'code': '<span class="hljs-number">1111013000</span>', 'name': '와룡동'}, {'code': '<span class="hljs-number">1111013100</span>', 'name': '권농동'}, {'code': '<span class="hljs-number">1111013200</span>', 'name': '운니동'}, {'code': '<span class="hljs-number">1111013300</span>', 'name': '익선동'}, {'code': '<span class="hljs-number">1111013400</span>', 'name': '경운동'}, {'code': '<span class="hljs-number">1111013500</span>', 'name': '관철동'}, {'code': '<span class="hljs-number">1111013600</span>', 'name': '인사동'}, {'code': '<span class="hljs-number">1111013700</span>', 'name': '낙원동'}, {'code': '<span class="hljs-number">1111013800</span>', 'name': '종로2가'}, {'code': '<span class="hljs-number">1111013900</span>', 'name': '팔판동'}, {'code': '<span class="hljs-number">1111014000</span>', 'name': '삼청동'}, {'code': '<span class="hljs-number">1111014100</span>', 'name': '안국동'}, {'code': '<span class="hljs-number">1111014200</span>', 'name': '소격동'}, {'code': '<span class="hljs-number">1111014300</span>', 'name': '화동'}, {'code': '<span class="hljs-number">1111014400</span>', 'name': '사간동'}, {'code': '<span class="hljs-number">1111014500</span>', 'name': '송현동'}, {'code': '<span class="hljs-number">1111014600</span>', 'name': '가회동'}, {'code': '<span class="hljs-number">1111014700</span>', 'name': '재동'}, {'code': '<span class="hljs-number">1111014800</span>', 'name': '계동'}, {'code': '<span class="hljs-number">1111014900</span>', 'name': '원서동'}, {'code': '<span class="hljs-number">1111015000</span>', 'name': '훈정동'}, {'code': '<span class="hljs-number">1111015100</span>', 'name': '묘동'}, {'code': '<span class="hljs-number">1111015200</span>', 'name': '봉익동'}, {'code': '<span class="hljs-number">1111015300</span>', 'name': '돈의동'}, {'code': '<span class="hljs-number">1111015400</span>', 'name': '장사동'}, {'code': '<span class="hljs-number">1111015500</span>', 'name': '관수동'}, {'code': '<span class="hljs-number">1111015600</span>', 'name': '종로3가'}, {'code': '<span class="hljs-number">1111015700</span>', 'name': '인의동'}, {'code': '<span class="hljs-number">1111015800</span>', 'name': '예지동'}, {'code': '<span class="hljs-number">1111015900</span>', 'name': '원남동'}, {'code': '<span class="hljs-number">1111016000</span>', 'name': '연지동'}, {'code': '<span class="hljs-number">1111016100</span>', 'name': '종로4가'}, {'code': '<span class="hljs-number">1111016200</span>', 'name': '효제동'}, {'code': '<span class="hljs-number">1111016300</span>', 'name': '종로5가'}, {'code': '<span class="hljs-number">1111016400</span>', 'name': '종로6가'}, {'code': '<span class="hljs-number">1111016500</span>', 'name': '이화동'}, {'code': '<span class="hljs-number">1111016600</span>', 'name': '연건동'}, {'code': '<span class="hljs-number">1111016700</span>', 'name': '충신동'}, {'code': '<span class="hljs-number">1111016800</span>', 'name': '동숭동'}, {'code': '<span class="hljs-number">1111016900</span>', 'name': '혜화동'}, {'code': '<span class="hljs-number">1111017000</span>', 'name': '명륜1가'}, {'code': '<span class="hljs-number">1111017100</span>', 'name': '명륜2가'}, {'code': '<span class="hljs-number">1111017200</span>', 'name': '명륜4가'}, {'code': '<span class="hljs-number">1111017300</span>', 'name': '명륜3가'}, {'code': '<span class="hljs-number">1111017400</span>', 'name': '창신동'}, {'code': '<span class="hljs-number">1111017500</span>', 'name': '숭인동'}, {'code': '<span class="hljs-number">1111017600</span>', 'name': '교남동'}, {'code': '<span class="hljs-number">1111017700</span>', 'name': '평동'}, {'code': '<span class="hljs-number">1111017800</span>', 'name': '송월동'}, {'code': '<span class="hljs-number">1111017900</span>', 'name': '홍파동'}, {'code': '<span class="hljs-number">1111018000</span>', 'name': '교북동'}, {'code': '<span class="hljs-number">1111018100</span>', 'name': '행촌동'}, {'code': '<span class="hljs-number">1111018200</span>', 'name': '구기동'}, {'code': '<span class="hljs-number">1111018300</span>', 'name': '평창동'}, {'code': '<span class="hljs-number">1111018400</span>', 'name': '부암동'}, {'code': '<span class="hljs-number">1111018500</span>', 'name': '홍지동'}, {'code': '<span class="hljs-number">1111018600</span>', 'name': '신영동'}, {'code': '<span class="hljs-number">1111018700</span>', 'name': '무악동'}]}, {'sigungu_code': '<span class="hljs-number">1114</span>0', 'sigungu_name': '중구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1114000000</span>', 'name': 'NaN'}, {'code': '<span class="hljs-number">1114010100</span>', 'name': '무교동'}, {'code': '<span class="hljs-number">1114010200</span>', 'name': '다동'}, {'code': '<span class="hljs-number">1114010300</span>', 'name': '태평로1가'}, {'code': '<span class="hljs-number">1114010400</span>', 'name': '을지로1가'}, {'code': '<span class="hljs-number">1114010500</span>', 'name': '을지로2가'}, {'code': '<span class="hljs-number">1114010600</span>', 'name': '남대문로1가'}, {'code': '<span class="hljs-number">1114010700</span>', 'name': '삼각동'}, {'code': '<span class="hljs-number">1114010800</span>', 'name': '수하동'}, {'code': '<span class="hljs-number">1114010900</span>', 'name': '장교동'}, {'code': '<span class="hljs-number">1114011000</span>', 'name': '수표동'}, {'code': '<span class="hljs-number">1114011100</span>', 'name': '소공동'}, {'code': '<span class="hljs-number">1114011200</span>', 'name': '남창동'}, {'code': '<span class="hljs-number">1114011300</span>', 'name': '북창동'}, {'code': '<span class="hljs-number">1114011400</span>', 'name': '태평로2가'}, {'code': '<span class="hljs-number">1114011500</span>', 'name': '남대문로2가'}, {'code': '<span class="hljs-number">1114011600</span>', 'name': '남대문로3가'}, {'code': '<span class="hljs-number">1114011700</span>', 'name': '남대문로4가'}, {'code': '<span class="hljs-number">1114011800</span>', 'name': '남대문로5가'}, {'code': '<span class="hljs-number">1114011900</span>', 'name': '봉래동1가'}, {'code': '<span class="hljs-number">1114012000</span>', 'name': '봉래동2가'}, {'code': '<span class="hljs-number">1114012100</span>', 'name': '회현동1가'}, {'code': '<span class="hljs-number">1114012200</span>', 'name': '회현동2가'}, {'code': '<span class="hljs-number">1114012300</span>', 'name': '회현동3가'}, {'code': '<span class="hljs-number">1114012400</span>', 'name': '충무로1가'}, {'code': '<span class="hljs-number">1114012500</span>', 'name': '충무로2가'}, {'code': '<span class="hljs-number">1114012600</span>', 'name': '명동1가'}, {'code': '<span class="hljs-number">1114012700</span>', 'name': '명동2가'}, {'code': '<span class="hljs-number">1114012800</span>', 'name': '남산동1가'}, {'code': '<span class="hljs-number">1114012900</span>', 'name': '남산동2가'}, {'code': '<span class="hljs-number">1114013000</span>', 'name': '남산동3가'}, {'code': '<span class="hljs-number">1114013100</span>', 'name': '저동1가'}, {'code': '<span class="hljs-number">1114013200</span>', 'name': '충무로4가'}, {'code': '<span class="hljs-number">1114013300</span>', 'name': '충무로5가'}, {'code': '<span class="hljs-number">1114013400</span>', 'name': '인현동2가'}, {'code': '<span class="hljs-number">1114013500</span>', 'name': '예관동'}, {'code': '<span class="hljs-number">1114013600</span>', 'name': '묵정동'}, {'code': '<span class="hljs-number">1114013700</span>', 'name': '필동1가'}, {'code': '<span class="hljs-number">1114013800</span>', 'name': '필동2가'}, {'code': '<span class="hljs-number">1114013900</span>', 'name': '필동3가'}, {'code': '<span class="hljs-number">1114014000</span>', 'name': '남학동'}, {'code': '<span class="hljs-number">1114014100</span>', 'name': '주자동'}, {'code': '<span class="hljs-number">1114014200</span>', 'name': '예장동'}, {'code': '<span class="hljs-number">1114014300</span>', 'name': '장충동1가'}, {'code': '<span class="hljs-number">1114014400</span>', 'name': '장충동2가'}, {'code': '<span class="hljs-number">1114014500</span>', 'name': '광희동1가'}, {'code': '<span class="hljs-number">1114014600</span>', 'name': '광희동2가'}, {'code': '<span class="hljs-number">1114014700</span>', 'name': '쌍림동'}, {'code': '<span class="hljs-number">1114014800</span>', 'name': '을지로6가'}, {'code': '<span class="hljs-number">1114014900</span>', 'name': '을지로7가'}, {'code': '<span class="hljs-number">1114015000</span>', 'name': '을지로4가'}, {'code': '<span class="hljs-number">1114015100</span>', 'name': '을지로5가'}, {'code': '<span class="hljs-number">1114015200</span>', 'name': '주교동'}, {'code': '<span class="hljs-number">1114015300</span>', 'name': '방산동'}, {'code': '<span class="hljs-number">1114015400</span>', 'name': '오장동'}, {'code': '<span class="hljs-number">1114015500</span>', 'name': '을지로3가'}, {'code': '<span class="hljs-number">1114015600</span>', 'name': '입정동'}, {'code': '<span class="hljs-number">1114015700</span>', 'name': '산림동'}, {'code': '<span class="hljs-number">1114015800</span>', 'name': '충무로3가'}, {'code': '<span class="hljs-number">1114015900</span>', 'name': '초동'}, {'code': '<span class="hljs-number">1114016000</span>', 'name': '인현동1가'}, {'code': '<span class="hljs-number">1114016100</span>', 'name': '저동2가'}, {'code': '<span class="hljs-number">1114016200</span>', 'name': '신당동'}, {'code': '<span class="hljs-number">1114016300</span>', 'name': '흥인동'}, {'code': '<span class="hljs-number">1114016400</span>', 'name': '무학동'}, {'code': '<span class="hljs-number">1114016500</span>', 'name': '황학동'}, {'code': '<span class="hljs-number">1114016600</span>', 'name': '서소문동'}, {'code': '<span class="hljs-number">1114016700</span>', 'name': '정동'}, {'code': '<span class="hljs-number">1114016800</span>', 'name': '순화동'}, {'code': '<span class="hljs-number">1114016900</span>', 'name': '의주로1가'}, {'code': '<span class="hljs-number">1114017000</span>', 'name': '충정로1가'}, {'code': '<span class="hljs-number">1114017100</span>', 'name': '중림동'}, {'code': '<span class="hljs-number">1114017200</span>', 'name': '의주로2가'}, {'code': '<span class="hljs-number">1114017300</span>', 'name': '만리동1가'}, {'code': '<span class="hljs-number">1114017400</span>', 'name': '만리동2가'}]}, {'sigungu_code': '<span class="hljs-number">1117</span>0', 'sigungu_name': '용산구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1117000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1117010100</span>', 'name': '후암동'}, {'code': '<span class="hljs-number">1117010200</span>', 'name': '용산동2가'}, {'code': '<span class="hljs-number">1117010300</span>', 'name': '용산동4가'}, {'code': '<span class="hljs-number">1117010400</span>', 'name': '갈월동'}, {'code': '<span class="hljs-number">1117010500</span>', 'name': '남영동'}, {'code': '<span class="hljs-number">1117010600</span>', 'name': '용산동1가'}, {'code': '<span class="hljs-number">1117010700</span>', 'name': '동자동'}, {'code': '<span class="hljs-number">1117010800</span>', 'name': '서계동'}, {'code': '<span class="hljs-number">1117010900</span>', 'name': '청파동1가'}, {'code': '<span class="hljs-number">1117011000</span>', 'name': '청파동2가'}, {'code': '<span class="hljs-number">1117011100</span>', 'name': '청파동3가'}, {'code': '<span class="hljs-number">1117011200</span>', 'name': '원효로1가'}, {'code': '<span class="hljs-number">1117011300</span>', 'name': '원효로2가'}, {'code': '<span class="hljs-number">1117011400</span>', 'name': '신창동'}, {'code': '<span class="hljs-number">1117011500</span>', 'name': '산천동'}, {'code': '<span class="hljs-number">1117011600</span>', 'name': '청암동'}, {'code': '<span class="hljs-number">1117011700</span>', 'name': '원효로3가'}, {'code': '<span class="hljs-number">1117011800</span>', 'name': '원효로4가'}, {'code': '<span class="hljs-number">1117011900</span>', 'name': '효창동'}, {'code': '<span class="hljs-number">1117012000</span>', 'name': '도원동'}, {'code': '<span class="hljs-number">1117012100</span>', 'name': '용문동'}, {'code': '<span class="hljs-number">1117012200</span>', 'name': '문배동'}, {'code': '<span class="hljs-number">1117012300</span>', 'name': '신계동'}, {'code': '<span class="hljs-number">1117012400</span>', 'name': '한강로1가'}, {'code': '<span class="hljs-number">1117012500</span>', 'name': '한강로2가'}, {'code': '<span class="hljs-number">1117012600</span>', 'name': '용산동3가'}, {'code': '<span class="hljs-number">1117012700</span>', 'name': '용산동5가'}, {'code': '<span class="hljs-number">1117012800</span>', 'name': '한강로3가'}, {'code': '<span class="hljs-number">1117012900</span>', 'name': '이촌동'}, {'code': '<span class="hljs-number">1117013000</span>', 'name': '이태원동'}, {'code': '<span class="hljs-number">1117013100</span>', 'name': '한남동'}, {'code': '<span class="hljs-number">1117013200</span>', 'name': '동빙고동'}, {'code': '<span class="hljs-number">1117013300</span>', 'name': '서빙고동'}, {'code': '<span class="hljs-number">1117013400</span>', 'name': '주성동'}, {'code': '<span class="hljs-number">1117013500</span>', 'name': '용산동6가'}, {'code': '<span class="hljs-number">1117013600</span>', 'name': '보광동'}]}, {'sigungu_code': '<span class="hljs-number">1120</span>0', 'sigungu_name': '성동구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1120000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1120010100</span>', 'name': '상왕십리동'}, {'code': '<span class="hljs-number">1120010200</span>', 'name': '하왕십리동'}, {'code': '<span class="hljs-number">1120010300</span>', 'name': '홍익동'}, {'code': '<span class="hljs-number">1120010400</span>', 'name': '도선동'}, {'code': '<span class="hljs-number">1120010500</span>', 'name': '마장동'}, {'code': '<span class="hljs-number">1120010600</span>', 'name': '사근동'}, {'code': '<span class="hljs-number">1120010700</span>', 'name': '행당동'}, {'code': '<span class="hljs-number">1120010800</span>', 'name': '응봉동'}, {'code': '<span class="hljs-number">1120010900</span>', 'name': '금호동1가'}, {'code': '<span class="hljs-number">1120011000</span>', 'name': '금호동2가'}, {'code': '<span class="hljs-number">1120011100</span>', 'name': '금호동3가'}, {'code': '<span class="hljs-number">1120011200</span>', 'name': '금호동4가'}, {'code': '<span class="hljs-number">1120011300</span>', 'name': '옥수동'}, {'code': '<span class="hljs-number">1120011400</span>', 'name': '성수동1가'}, {'code': '<span class="hljs-number">1120011500</span>', 'name': '성수동2가'}, {'code': '<span class="hljs-number">1120011800</span>', 'name': '송정동'}, {'code': '<span class="hljs-number">1120012200</span>', 'name': '용답동'}]}, {'sigungu_code': '<span class="hljs-number">1121</span>5', 'sigungu_name': '광진구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1121500000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1121510100</span>', 'name': '중곡동'}, {'code': '<span class="hljs-number">1121510200</span>', 'name': '능동'}, {'code': '<span class="hljs-number">1121510300</span>', 'name': '구의동'}, {'code': '<span class="hljs-number">1121510400</span>', 'name': '광장동'}, {'code': '<span class="hljs-number">1121510500</span>', 'name': '자양동'}, {'code': '<span class="hljs-number">1121510700</span>', 'name': '화양동'}, {'code': '<span class="hljs-number">1121510900</span>', 'name': '군자동'}]}, {'sigungu_code': '<span class="hljs-number">1123</span>0', 'sigungu_name': '동대문구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1123000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1123010100</span>', 'name': '신설동'}, {'code': '<span class="hljs-number">1123010200</span>', 'name': '용두동'}, {'code': '<span class="hljs-number">1123010300</span>', 'name': '제기동'}, {'code': '<span class="hljs-number">1123010400</span>', 'name': '전농동'}, {'code': '<span class="hljs-number">1123010500</span>', 'name': '답십리동'}, {'code': '<span class="hljs-number">1123010600</span>', 'name': '장안동'}, {'code': '<span class="hljs-number">1123010700</span>', 'name': '청량리동'}, {'code': '<span class="hljs-number">1123010800</span>', 'name': '회기동'}, {'code': '<span class="hljs-number">1123010900</span>', 'name': '휘경동'}, {'code': '<span class="hljs-number">1123011000</span>', 'name': '이문동'}]}, {'sigungu_code': '<span class="hljs-number">1126</span>0', 'sigungu_name': '중랑구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1126000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1126010100</span>', 'name': '면목동'}, {'code': '<span class="hljs-number">1126010200</span>', 'name': '상봉동'}, {'code': '<span class="hljs-number">1126010300</span>', 'name': '중화동'}, {'code': '<span class="hljs-number">1126010400</span>', 'name': '묵동'}, {'code': '<span class="hljs-number">1126010500</span>', 'name': '망우동'}, {'code': '<span class="hljs-number">1126010600</span>', 'name': '신내동'}]}, {'sigungu_code': '<span class="hljs-number">1129</span>0', 'sigungu_name': '성북구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1129000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1129010100</span>', 'name': '성북동'}, {'code': '<span class="hljs-number">1129010200</span>', 'name': '성북동1가'}, {'code': '<span class="hljs-number">1129010300</span>', 'name': '돈암동'}, {'code': '<span class="hljs-number">1129010400</span>', 'name': '동소문동1가'}, {'code': '<span class="hljs-number">1129010500</span>', 'name': '동소문동2가'}, {'code': '<span class="hljs-number">1129010600</span>', 'name': '동소문동3가'}, {'code': '<span class="hljs-number">1129010700</span>', 'name': '동소문동4가'}, {'code': '<span class="hljs-number">1129010800</span>', 'name': '동소문동5가'}, {'code': '<span class="hljs-number">1129010900</span>', 'name': '동소문동6가'}, {'code': '<span class="hljs-number">1129011000</span>', 'name': '동소문동7가'}, {'code': '<span class="hljs-number">1129011100</span>', 'name': '삼선동1가'}, {'code': '<span class="hljs-number">1129011200</span>', 'name': '삼선동2가'}, {'code': '<span class="hljs-number">1129011300</span>', 'name': '삼선동3가'}, {'code': '<span class="hljs-number">1129011400</span>', 'name': '삼선동4가'}, {'code': '<span class="hljs-number">1129011500</span>', 'name': '삼선동5가'}, {'code': '<span class="hljs-number">1129011600</span>', 'name': '동선동1가'}, {'code': '<span class="hljs-number">1129011700</span>', 'name': '동선동2가'}, {'code': '<span class="hljs-number">1129011800</span>', 'name': '동선동3가'}, {'code': '<span class="hljs-number">1129011900</span>', 'name': '동선동4가'}, {'code': '<span class="hljs-number">1129012000</span>', 'name': '동선동5가'}, {'code': '<span class="hljs-number">1129012100</span>', 'name': '안암동1가'}, {'code': '<span class="hljs-number">1129012200</span>', 'name': '안암동2가'}, {'code': '<span class="hljs-number">1129012300</span>', 'name': '안암동3가'}, {'code': '<span class="hljs-number">1129012400</span>', 'name': '안암동4가'}, {'code': '<span class="hljs-number">1129012500</span>', 'name': '안암동5가'}, {'code': '<span class="hljs-number">1129012600</span>', 'name': '보문동4가'}, {'code': '<span class="hljs-number">1129012700</span>', 'name': '보문동5가'}, {'code': '<span class="hljs-number">1129012800</span>', 'name': '보문동6가'}, {'code': '<span class="hljs-number">1129012900</span>', 'name': '보문동7가'}, {'code': '<span class="hljs-number">1129013000</span>', 'name': '보문동1가'}, {'code': '<span class="hljs-number">1129013100</span>', 'name': '보문동2가'}, {'code': '<span class="hljs-number">1129013200</span>', 'name': '보문동3가'}, {'code': '<span class="hljs-number">1129013300</span>', 'name': '정릉동'}, {'code': '<span class="hljs-number">1129013400</span>', 'name': '길음동'}, {'code': '<span class="hljs-number">1129013500</span>', 'name': '종암동'}, {'code': '<span class="hljs-number">1129013600</span>', 'name': '하월곡동'}, {'code': '<span class="hljs-number">1129013700</span>', 'name': '상월곡동'}, {'code': '<span class="hljs-number">1129013800</span>', 'name': '장위동'}, {'code': '<span class="hljs-number">1129013900</span>', 'name': '석관동'}]}, {'sigungu_code': '<span class="hljs-number">1130</span>5', 'sigungu_name': '강북구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1130500000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1130510100</span>', 'name': '미아동'}, {'code': '<span class="hljs-number">1130510200</span>', 'name': '번동'}, {'code': '<span class="hljs-number">1130510300</span>', 'name': '수유동'}, {'code': '<span class="hljs-number">1130510400</span>', 'name': '우이동'}]}, {'sigungu_code': '<span class="hljs-number">1132</span>0', 'sigungu_name': '도봉구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1132000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1132010500</span>', 'name': '쌍문동'}, {'code': '<span class="hljs-number">1132010600</span>', 'name': '방학동'}, {'code': '<span class="hljs-number">1132010700</span>', 'name': '창동'}, {'code': '<span class="hljs-number">1132010800</span>', 'name': '도봉동'}]}, {'sigungu_code': '<span class="hljs-number">1135</span>0', 'sigungu_name': '노원구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1135000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1135010200</span>', 'name': '월계동'}, {'code': '<span class="hljs-number">1135010300</span>', 'name': '공릉동'}, {'code': '<span class="hljs-number">1135010400</span>', 'name': '하계동'}, {'code': '<span class="hljs-number">1135010500</span>', 'name': '상계동'}, {'code': '<span class="hljs-number">1135010600</span>', 'name': '중계동'}]}, {'sigungu_code': '<span class="hljs-number">1138</span>0', 'sigungu_name': '은평구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1138000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1138010100</span>', 'name': '수색동'}, {'code': '<span class="hljs-number">1138010200</span>', 'name': '녹번동'}, {'code': '<span class="hljs-number">1138010300</span>', 'name': '불광동'}, {'code': '<span class="hljs-number">1138010400</span>', 'name': '갈현동'}, {'code': '<span class="hljs-number">1138010500</span>', 'name': '구산동'}, {'code': '<span class="hljs-number">1138010600</span>', 'name': '대조동'}, {'code': '<span class="hljs-number">1138010700</span>', 'name': '응암동'}, {'code': '<span class="hljs-number">1138010800</span>', 'name': '역촌동'}, {'code': '<span class="hljs-number">1138010900</span>', 'name': '신사동'}, {'code': '<span class="hljs-number">1138011000</span>', 'name': '증산동'}, {'code': '<span class="hljs-number">1138011400</span>', 'name': '진관동'}]}, {'sigungu_code': '<span class="hljs-number">1141</span>0', 'sigungu_name': '서대문구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1141000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1141010100</span>', 'name': '충정로2가'}, {'code': '<span class="hljs-number">1141010200</span>', 'name': '충정로3가'}, {'code': '<span class="hljs-number">1141010300</span>', 'name': '합동'}, {'code': '<span class="hljs-number">1141010400</span>', 'name': '미근동'}, {'code': '<span class="hljs-number">1141010500</span>', 'name': '냉천동'}, {'code': '<span class="hljs-number">1141010600</span>', 'name': '천연동'}, {'code': '<span class="hljs-number">1141010700</span>', 'name': '옥천동'}, {'code': '<span class="hljs-number">1141010800</span>', 'name': '영천동'}, {'code': '<span class="hljs-number">1141010900</span>', 'name': '현저동'}, {'code': '<span class="hljs-number">1141011000</span>', 'name': '북아현동'}, {'code': '<span class="hljs-number">1141011100</span>', 'name': '홍제동'}, {'code': '<span class="hljs-number">1141011200</span>', 'name': '대현동'}, {'code': '<span class="hljs-number">1141011300</span>', 'name': '대신동'}, {'code': '<span class="hljs-number">1141011400</span>', 'name': '신촌동'}, {'code': '<span class="hljs-number">1141011500</span>', 'name': '봉원동'}, {'code': '<span class="hljs-number">1141011600</span>', 'name': '창천동'}, {'code': '<span class="hljs-number">1141011700</span>', 'name': '연희동'}, {'code': '<span class="hljs-number">1141011800</span>', 'name': '홍은동'}, {'code': '<span class="hljs-number">1141011900</span>', 'name': '북가좌동'}, {'code': '<span class="hljs-number">1141012000</span>', 'name': '남가좌동'}]}, {'sigungu_code': '<span class="hljs-number">1144</span>0', 'sigungu_name': '마포구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1144000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1144010100</span>', 'name': '아현동'}, {'code': '<span class="hljs-number">1144010200</span>', 'name': '공덕동'}, {'code': '<span class="hljs-number">1144010300</span>', 'name': '신공덕동'}, {'code': '<span class="hljs-number">1144010400</span>', 'name': '도화동'}, {'code': '<span class="hljs-number">1144010500</span>', 'name': '용강동'}, {'code': '<span class="hljs-number">1144010600</span>', 'name': '토정동'}, {'code': '<span class="hljs-number">1144010700</span>', 'name': '마포동'}, {'code': '<span class="hljs-number">1144010800</span>', 'name': '대흥동'}, {'code': '<span class="hljs-number">1144010900</span>', 'name': '염리동'}, {'code': '<span class="hljs-number">1144011000</span>', 'name': '노고산동'}, {'code': '<span class="hljs-number">1144011100</span>', 'name': '신수동'}, {'code': '<span class="hljs-number">1144011200</span>', 'name': '현석동'}, {'code': '<span class="hljs-number">1144011300</span>', 'name': '구수동'}, {'code': '<span class="hljs-number">1144011400</span>', 'name': '창전동'}, {'code': '<span class="hljs-number">1144011500</span>', 'name': '상수동'}, {'code': '<span class="hljs-number">1144011600</span>', 'name': '하중동'}, {'code': '<span class="hljs-number">1144011700</span>', 'name': '신정동'}, {'code': '<span class="hljs-number">1144011800</span>', 'name': '당인동'}, {'code': '<span class="hljs-number">1144012000</span>', 'name': '서교동'}, {'code': '<span class="hljs-number">1144012100</span>', 'name': '동교동'}, {'code': '<span class="hljs-number">1144012200</span>', 'name': '합정동'}, {'code': '<span class="hljs-number">1144012300</span>', 'name': '망원동'}, {'code': '<span class="hljs-number">1144012400</span>', 'name': '연남동'}, {'code': '<span class="hljs-number">1144012500</span>', 'name': '성산동'}, {'code': '<span class="hljs-number">1144012600</span>', 'name': '중동'}, {'code': '<span class="hljs-number">1144012700</span>', 'name': '상암동'}]}, {'sigungu_code': '<span class="hljs-number">1147</span>0', 'sigungu_name': '양천구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1147000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1147010100</span>', 'name': '신정동'}, {'code': '<span class="hljs-number">1147010200</span>', 'name': '목동'}, {'code': '<span class="hljs-number">1147010300</span>', 'name': '신월동'}]}, {'sigungu_code': '<span class="hljs-number">1150</span>0', 'sigungu_name': '강서구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1150000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1150000100</span>', 'name': '신정동'}, {'code': '<span class="hljs-number">1150000200</span>', 'name': '신월동'}, {'code': '<span class="hljs-number">1150010100</span>', 'name': '염창동'}, {'code': '<span class="hljs-number">1150010200</span>', 'name': '등촌동'}, {'code': '<span class="hljs-number">1150010300</span>', 'name': '화곡동'}, {'code': '<span class="hljs-number">1150010400</span>', 'name': '가양'}, {'code': '<span class="hljs-number">1150010500</span>', 'name': '마곡동'}, {'code': '<span class="hljs-number">1150010600</span>', 'name': '내발산동'}, {'code': '<span class="hljs-number">1150010700</span>', 'name': '외발산동'}, {'code': '<span class="hljs-number">1150010800</span>', 'name': '공항동'}, {'code': '<span class="hljs-number">1150010900</span>', 'name': '방화동'}, {'code': '<span class="hljs-number">1150011000</span>', 'name': '개화동'}, {'code': '<span class="hljs-number">1150011100</span>', 'name': '과해동'}, {'code': '<span class="hljs-number">1150011200</span>', 'name': '오곡동'}, {'code': '<span class="hljs-number">1150011300</span>', 'name': '오쇠동'}]}, {'sigungu_code': '<span class="hljs-number">1153</span>0', 'sigungu_name': '구로구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1153000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1153010100</span>', 'name': '신도림동'}, {'code': '<span class="hljs-number">1153010200</span>', 'name': '구로동'}, {'code': '<span class="hljs-number">1153010300</span>', 'name': '가리봉동'}, {'code': '<span class="hljs-number">1153010600</span>', 'name': '고척동'}, {'code': '<span class="hljs-number">1153010700</span>', 'name': '개봉동'}, {'code': '<span class="hljs-number">1153010800</span>', 'name': '오류동'}, {'code': '<span class="hljs-number">1153010900</span>', 'name': '궁동'}, {'code': '<span class="hljs-number">1153011000</span>', 'name': '온수동'}, {'code': '<span class="hljs-number">1153011100</span>', 'name': '천왕동'}, {'code': '<span class="hljs-number">1153011200</span>', 'name': '항동'}]}, {'sigungu_code': '<span class="hljs-number">1154</span>5', 'sigungu_name': '금천구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1154500000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1154510100</span>', 'name': '가산동'}, {'code': '<span class="hljs-number">1154510200</span>', 'name': '독산동'}, {'code': '<span class="hljs-number">1154510300</span>', 'name': '시흥동'}]}, {'sigungu_code': '<span class="hljs-number">1156</span>0', 'sigungu_name': '영등포구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1156000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1156010100</span>', 'name': '영등포동'}, {'code': '<span class="hljs-number">1156010200</span>', 'name': '영등포동1가'}, {'code': '<span class="hljs-number">1156010300</span>', 'name': '영등포동2가'}, {'code': '<span class="hljs-number">1156010400</span>', 'name': '영등포동3가'}, {'code': '<span class="hljs-number">1156010500</span>', 'name': '영등포동4가'}, {'code': '<span class="hljs-number">1156010600</span>', 'name': '영등포동5가'}, {'code': '<span class="hljs-number">1156010700</span>', 'name': '영등포동6가'}, {'code': '<span class="hljs-number">1156010800</span>', 'name': '영등포동7가'}, {'code': '<span class="hljs-number">1156010900</span>', 'name': '영등포동8가'}, {'code': '<span class="hljs-number">1156011000</span>', 'name': '여의도동'}, {'code': '<span class="hljs-number">1156011100</span>', 'name': '당산동1가'}, {'code': '<span class="hljs-number">1156011200</span>', 'name': '당산동2가'}, {'code': '<span class="hljs-number">1156011300</span>', 'name': '당산동3가'}, {'code': '<span class="hljs-number">1156011400</span>', 'name': '당산동4가'}, {'code': '<span class="hljs-number">1156011500</span>', 'name': '당산동5가'}, {'code': '<span class="hljs-number">1156011600</span>', 'name': '당산동6가'}, {'code': '<span class="hljs-number">1156011700</span>', 'name': '당산동'}, {'code': '<span class="hljs-number">1156011800</span>', 'name': '도림동'}, {'code': '<span class="hljs-number">1156011900</span>', 'name': '문래동1가'}, {'code': '<span class="hljs-number">1156012000</span>', 'name': '문래동2가'}, {'code': '<span class="hljs-number">1156012100</span>', 'name': '문래동3가'}, {'code': '<span class="hljs-number">1156012200</span>', 'name': '문래동4가'}, {'code': '<span class="hljs-number">1156012300</span>', 'name': '문래동5가'}, {'code': '<span class="hljs-number">1156012400</span>', 'name': '문래동6가'}, {'code': '<span class="hljs-number">1156012500</span>', 'name': '양평동1가'}, {'code': '<span class="hljs-number">1156012600</span>', 'name': '양평동2가'}, {'code': '<span class="hljs-number">1156012700</span>', 'name': '양평동3가'}, {'code': '<span class="hljs-number">1156012800</span>', 'name': '양평동4가'}, {'code': '<span class="hljs-number">1156012900</span>', 'name': '양평동5가'}, {'code': '<span class="hljs-number">1156013000</span>', 'name': '양평동6가'}, {'code': '<span class="hljs-number">1156013100</span>', 'name': '양화동'}, {'code': '<span class="hljs-number">1156013200</span>', 'name': '신길동'}, {'code': '<span class="hljs-number">1156013300</span>', 'name': '대림동'}, {'code': '<span class="hljs-number">1156013400</span>', 'name': '양평동'}]}, {'sigungu_code': '<span class="hljs-number">1159</span>0', 'sigungu_name': '동작구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1159000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1159010100</span>', 'name': '노량진동'}, {'code': '<span class="hljs-number">1159010200</span>', 'name': '상도동'}, {'code': '<span class="hljs-number">1159010300</span>', 'name': '상도1동'}, {'code': '<span class="hljs-number">1159010400</span>', 'name': '본동'}, {'code': '<span class="hljs-number">1159010500</span>', 'name': '흑석동'}, {'code': '<span class="hljs-number">1159010600</span>', 'name': '동작동'}, {'code': '<span class="hljs-number">1159010700</span>', 'name': '사당동'}, {'code': '<span class="hljs-number">1159010800</span>', 'name': '대방동'}, {'code': '<span class="hljs-number">1159010900</span>', 'name': '신대방동'}]}, {'sigungu_code': '<span class="hljs-number">1162</span>0', 'sigungu_name': '관악구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1162000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1162010100</span>', 'name': '봉천동'}, {'code': '<span class="hljs-number">1162010200</span>', 'name': '신림동'}, {'code': '<span class="hljs-number">1162010300</span>', 'name': '남현동'}]}, {'sigungu_code': '<span class="hljs-number">1165</span>0', 'sigungu_name': '서초구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1165000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1165010100</span>', 'name': '방배동'}, {'code': '<span class="hljs-number">1165010200</span>', 'name': '양재동'}, {'code': '<span class="hljs-number">1165010300</span>', 'name': '우면동'}, {'code': '<span class="hljs-number">1165010400</span>', 'name': '원지동'}, {'code': '<span class="hljs-number">1165010600</span>', 'name': '잠원동'}, {'code': '<span class="hljs-number">1165010700</span>', 'name': '반포동'}, {'code': '<span class="hljs-number">1165010800</span>', 'name': '서초동'}, {'code': '<span class="hljs-number">1165010900</span>', 'name': '내곡동'}, {'code': '<span class="hljs-number">1165011000</span>', 'name': '염곡동'}, {'code': '<span class="hljs-number">1165011100</span>', 'name': '신원동'}]}, {'sigungu_code': '<span class="hljs-number">1168</span>0', 'sigungu_name': '강남구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1168000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1168010100</span>', 'name': '역삼동'}, {'code': '<span class="hljs-number">1168010300</span>', 'name': '개포동'}, {'code': '<span class="hljs-number">1168010400</span>', 'name': '청담동'}, {'code': '<span class="hljs-number">1168010500</span>', 'name': '삼성동'}, {'code': '<span class="hljs-number">1168010600</span>', 'name': '대치동'}, {'code': '<span class="hljs-number">1168010700</span>', 'name': '신사동'}, {'code': '<span class="hljs-number">1168010800</span>', 'name': '논현동'}, {'code': '<span class="hljs-number">1168011000</span>', 'name': '압구정동'}, {'code': '<span class="hljs-number">1168011100</span>', 'name': '세곡동'}, {'code': '<span class="hljs-number">1168011200</span>', 'name': '자곡동'}, {'code': '<span class="hljs-number">1168011300</span>', 'name': '율현동'}, {'code': '<span class="hljs-number">1168011400</span>', 'name': '일원동'}, {'code': '<span class="hljs-number">1168011500</span>', 'name': '수서동'}, {'code': '<span class="hljs-number">1168011800</span>', 'name': '도곡동'}]}, {'sigungu_code': '<span class="hljs-number">1171</span>0', 'sigungu_name': '송파구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1171000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1171010100</span>', 'name': '잠실동'}, {'code': '<span class="hljs-number">1171010200</span>', 'name': '신천동'}, {'code': '<span class="hljs-number">1171010300</span>', 'name': '풍납동'}, {'code': '<span class="hljs-number">1171010400</span>', 'name': '송파동'}, {'code': '<span class="hljs-number">1171010500</span>', 'name': '석촌동'}, {'code': '<span class="hljs-number">1171010600</span>', 'name': '삼전동'}, {'code': '<span class="hljs-number">1171010700</span>', 'name': '가락동'}, {'code': '<span class="hljs-number">1171010800</span>', 'name': '문정동'}, {'code': '<span class="hljs-number">1171010900</span>', 'name': '장지동'}, {'code': '<span class="hljs-number">1171011100</span>', 'name': '방이동'}, {'code': '<span class="hljs-number">1171011200</span>', 'name': '오금동'}, {'code': '<span class="hljs-number">1171011300</span>', 'name': '거여동'}, {'code': '<span class="hljs-number">1171011400</span>', 'name': '마천동'}]}, {'sigungu_code': '<span class="hljs-number">1174</span>0', 'sigungu_name': '강동구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1174000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1174010100</span>', 'name': '명일동'}, {'code': '<span class="hljs-number">1174010200</span>', 'name': '고덕동'}, {'code': '<span class="hljs-number">1174010300</span>', 'name': '상일동'}, {'code': '<span class="hljs-number">1174010500</span>', 'name': '길동'}, {'code': '<span class="hljs-number">1174010600</span>', 'name': '둔촌동'}, {'code': '<span class="hljs-number">1174010700</span>', 'name': '암사동'}, {'code': '<span class="hljs-number">1174010800</span>', 'name': '성내동'}, {'code': '<span class="hljs-number">1174010900</span>', 'name': '천호동'}, {'code': '<span class="hljs-number">1174011000</span>', 'name': '강일동'}]}]

필터된 시/군/구 리스트:
[{'sigungu_code': '<span class="hljs-number">1168</span>0', 'sigungu_name': '강남구', 'eup_myeon_dong': [{'code': '<span class="hljs-number">1168000000</span>', 'name': 'nan'}, {'code': '<span class="hljs-number">1168010100</span>', 'name': '역삼동'}, {'code': '<span class="hljs-number">1168010300</span>', 'name': '개포동'}, {'code': '<span class="hljs-number">1168010400</span>', 'name': '청담동'}, {'code': '<span class="hljs-number">1168010500</span>', 'name': '삼성동'}, {'code': '<span class="hljs-number">1168010600</span>', 'name': '대치동'}, {'code': '<span class="hljs-number">1168010700</span>', 'name': '신사동'}, {'code': '<span class="hljs-number">1168010800</span>', 'name': '논현동'}, {'code': '<span class="hljs-number">1168011000</span>', 'name': '압구정동'}, {'code': '<span class="hljs-number">1168011100</span>', 'name': '세곡동'}, {'code': '<span class="hljs-number">1168011200</span>', 'name': '자곡동'}, {'code': '<span class="hljs-number">1168011300</span>', 'name': '율현동'}, {'code': '<span class="hljs-number">1168011400</span>', 'name': '일원동'}, {'code': '<span class="hljs-number">1168011500</span>', 'name': '수서동'}, {'code': '<span class="hljs-number">1168011800</span>', 'name': '도곡동'}]}]
</pre>
<p><span style="color: #000000; text-align: start;">다음포스트에서는 공공데이터를 읽어와서, 컬럼이름을 수정하고, 전용면적을 평수로 계산하는 메소드를 구현해봅니다.</span></p>
<p><a href="https://2days.kr/14/09/06/56517/coding/data/">파이썬 부동산 매매가 조회 프로그램 만들기 1편</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- AI CONTENT END 6 -->
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>파이썬 부동산 매매가 조회 프로그램 만들기 1편</title>
		<link>https://2days.kr/14/09/06/56517/it/program/</link>
		
		<dc:creator><![CDATA[urjent]]></dc:creator>
		<pubDate>Fri, 13 Sep 2024 21:44:32 +0000</pubDate>
				<category><![CDATA[program]]></category>
		<category><![CDATA[API키발급]]></category>
		<category><![CDATA[API활용]]></category>
		<category><![CDATA[개발자]]></category>
		<category><![CDATA[공공API]]></category>
		<category><![CDATA[공공데이터]]></category>
		<category><![CDATA[공공데이터포털]]></category>
		<category><![CDATA[데이터분석]]></category>
		<category><![CDATA[데이터수집]]></category>
		<category><![CDATA[매매가조회]]></category>
		<category><![CDATA[매물조회]]></category>
		<category><![CDATA[부동산]]></category>
		<category><![CDATA[부동산분석]]></category>
		<category><![CDATA[부동산시세]]></category>
		<category><![CDATA[부동산시장]]></category>
		<category><![CDATA[부동산자동화]]></category>
		<category><![CDATA[부동산정보]]></category>
		<category><![CDATA[시세분석]]></category>
		<category><![CDATA[시세조회]]></category>
		<category><![CDATA[실거래가조회]]></category>
		<category><![CDATA[실거래조회]]></category>
		<category><![CDATA[실거래조회기]]></category>
		<category><![CDATA[아파트매매]]></category>
		<category><![CDATA[연립다세대]]></category>
		<category><![CDATA[자동화프로그램]]></category>
		<category><![CDATA[주택매매]]></category>
		<category><![CDATA[주택시세]]></category>
		<category><![CDATA[주택정보]]></category>
		<category><![CDATA[파이썬]]></category>
		<category><![CDATA[파이썬개발]]></category>
		<category><![CDATA[파이썬프로그래밍]]></category>
		<category><![CDATA[파이썬프로젝트]]></category>
		<guid isPermaLink="false">https://2days.kr/?p=56517</guid>

					<description><![CDATA[파이썬 부동산 매매가 조회 프로그램 만들기 1편 ㅣ 최근 들어 부동산 시장의 변화가 심상치 않게 다가오고 있습니다. 뉴스나 주변에서 부동산에 대한 이야기를 듣다 보면, 나도 자연스럽게 관심을 가지게 되더군요. 그래서 저 역시 시간이 날 때마다 네이버 부동산이나 기타 부동산 관련 플랫폼을 통해, 제가 살고 있는 지역이나 마음에 드는 다른 지역의 부동산 시세를 계속해서 살펴보곤 했습니다. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="color: #555555; text-align: start;" data-ke-size="size16">파이썬 부동산 매매가 조회 프로그램 만들기 1편 ㅣ 최근 들어 부동산 시장의 변화가 심상치 않게 다가오고 있습니다. 뉴스나 주변에서 부동산에 대한 이야기를 듣다 보면, 나도 자연스럽게 관심을 가지게 되더군요. 그래서 저 역시 시간이 날 때마다 네이버 부동산이나 기타 부동산 관련 플랫폼을 통해, 제가 살고 있는 지역이나 마음에 드는 다른 지역의 부동산 시세를 계속해서 살펴보곤 했습니다. 하지만 문제는, 이런 정보를 일일이 수작업으로 찾아보다 보니 시간이 많이 들고, 특정 가격대의 매물을 찾는 데도 한계가 있다는 것이었어요.</p>
<h3 style="color: #555555; text-align: start;" data-ke-size="size23">파이썬 부동산 매매가 조회 프로그램 만들기 1편</h3>
<figure data-ke-type="image" data-ke-mobilestyle="widthOrigin" data-ke-style="alignCenter">
<p><figure style="width: 2560px" class="wp-caption alignnone"><img loading="lazy" decoding="async" src="https://blog.kakaocdn.net/dn/chotyR/btsJDipp4XQ/Qx3NRYykZJIpZYs3RSY0z0/img.png" alt="파이썬 부동산 매매가 조회 프로그램 만들기 1편" width="2560" height="2560" data-origin-width="2560" data-origin-height="2560" data-is-animation="false" data-filename="파이썬 부동산 매매가 조회 프로그램 만들기 1편.png" data-origin- title="파이썬 부동산 매매가 조회 프로그램 만들기 1편 21"><figcaption class="wp-caption-text">파이썬 부동산 매매가 조회 프로그램 만들기 1편</figcaption></figure></figure><div class='code-block code-block-2' style='margin: 8px auto; text-align: center; display: block; clear: both;'>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8940400388075870"
     crossorigin="anonymous"></script>
<!-- 중간 -->
<ins class="adsbygoogle"
     style="display:block"
     data-ad-client="ca-pub-8940400388075870"
     data-ad-slot="8794586137"
     data-ad-format="auto"
     data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>

<h3 style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size23">부동산 매매가 확인의 중요성</h3>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">부동산이나 주식 같은 자산들은 매매된 가격이 그 지역이나 자산의 시세를 반영하는 중요한 지표가 됩니다. 즉, 최근에 이루어진 거래 가격을 살펴보면, 해당 지역의 시세가 어느 정도인지 파악할 수 있다는 거죠. 특히 부동산은 시장 상황에 따라 가격 변동이 빠르게 일어나기도 하고, 시세 자체가 한꺼번에 급등하거나 급락하기도 합니다. 이런 변화를 민감하게 캐치하려면 실거래가를 확인하는 것이 필수적입니다. 그래서 네이버 부동산에서 직접 매물을 찾아보기보다는, 파이썬을 이용해 자동으로 내가 원하는 매매가를 조회할 수 있는 프로그램을 만들어보면 어떨까 하는 생각이 들었습니다.</p>
<h3 style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size23">왜 매매가 조회기가 필요한가?</h3>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">처음에는 단순히 부동산 시세만 파악하려고 했는데, 여러 번 수작업으로 하다 보니 불편함이 크더라고요. 특히 원하는 가격대에 맞는 매물을 찾는 것이 어렵다는 점이 가장 큰 문제였습니다. 부동산 플랫폼에는 수많은 매물이 등록되어 있기 때문에 그 중에서 내가 원하는 매매가에 맞는 매물을 찾는 것은 시간도 많이 걸리고, 수고도 많이 드는 일이죠. 이를 자동화하면 훨씬 효율적으로 시세를 파악할 수 있을 거라 생각했습니다.</p>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">부동산 매매가는 시세에 매우 중요한 역할을 합니다. 예를 들어, 어떤 아파트가 최근에 높은 가격으로 거래되었다면, 그 주변의 시세도 덩달아 오를 가능성이 크다는 것이죠. 그래서 이러한 데이터를 쉽게 얻을 수 있다면, 내가 관심 있는 지역의 시세 변동을 빠르게 캐치할 수 있습니다. 저는 주로 네이버 부동산과 KB부동산 시세를 참고하는데, 여기에 원하는 매매가 조회 기능을 추가한다면 더 효율적으로 정보를 얻을 수 있겠다고 생각했습니다. 그래서 바로 파이썬으로 부동산 매매가 조회기를 만들기 위한 계획을 세웠습니다.</p>
<h3 style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size23">공공 API 활용의 어려움과 해결책</h3>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">사실 부동산 데이터를 수집하려면 공공 API를 활용해야 하는데, 그 과정이 그렇게 쉽지만은 않았습니다. 많은 사람들이 느끼는 것처럼, 공공 API는 사용하는 데 불편함이 많습니다. 매뉴얼도 복잡하고, 필요한 데이터를 얻는 과정도 번거롭죠. 하지만 다행히도, 이러한 공공 API를 쉽게 다룰 수 있도록 이미 라이브러리를 만들어놓은 분들이 계셨습니다. 그래서 저는 이 라이브러리를 이용해 내가 원하는 형태로 데이터를 조회할 수 있는 프로그램을 만들어보기로 했습니다.</p>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">이 과정에서 API를 직접 호출하여 데이터를 가져오는 것보다는, 이미 만들어진 라이브러리를 이용하는 것이 시간과 노력을 크게 절약할 수 있다는 장점이 있습니다. 또한, 라이브러리를 이용하면 복잡한 <a href="https://2days.kr/30/11/12/70250/aboda/">API</a> 호출 과정을 보다 간단하게 처리할 수 있기 때문에, 개발자 입장에서 매우 유용하죠. 이러한 라이브러리를 활용해 매매가 조회기를 만든다면, 원하는 가격대의 매물들을 빠르고 쉽게 조회할 수 있을 뿐만 아니라, 그 매물들이 거래된 지역의 시세를 더욱 효과적으로 파악할 수 있게 됩니다.</p>
<h3 style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size23">API 키 발급받기</h3>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">이제 본격적으로 부동산 매매가 조회기를 만들기 전에, API 키를 발급받는 과정에 대해 설명하겠습니다.</p>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16"><a href="https://www.data.go.kr/tcs/dss/selectDataSetList.do?keyword=%EC%95%84%ED%8C%8C%ED%8A%B8+%EB%A7%A4%EB%A7%A4+%EC%8B%A4%EA%B1%B0%EB%9E%98%EA%B0%80+%EC%83%81%EC%84%B8+%EC%9E%90%EB%A3%8C&amp;brm=&amp;svcType=&amp;recmSe=N&amp;conditionType=init&amp;extsn=&amp;kwrdArray=" target="_blank" rel="noopener noreferrer noopener">https://www.data.go.kr</a></p>
<figure id="og_1726226698532" contenteditable="false" data-ke-type="opengraph" data-ke-align="alignCenter" data-og-type="website" data-og-title="공공데이터 포털" data-og-description="국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase" data-og-host="www.data.go.kr" data-og-source-url="https://www.data.go.kr/tcs/dss/selectDataSetList.do?keyword=%EC%95%84%ED%8C%8C%ED%8A%B8+%EB%A7%A4%EB%A7%A4+%EC%8B%A4%EA%B1%B0%EB%9E%98%EA%B0%80+%EC%83%81%EC%84%B8+%EC%9E%90%EB%A3%8C&amp;brm=&amp;svcType=&amp;recmSe=N&amp;conditionType=init&amp;extsn=&amp;kwrdArray=" data-og-url="https://www.data.go.kr/tcs/dss/selectDataSetList.do" data-og-image="https://scrap.kakaocdn.net/dn/QHw8Z/hyW2SQPGjx/XtkeNu6L019y6gK8WRYZ70/img.png?width=390&amp;height=158&amp;face=0_0_390_158">
<div class="og-image" style="background-image: url('https://scrap.kakaocdn.net/dn/QHw8Z/hyW2SQPGjx/XtkeNu6L019y6gK8WRYZ70/img.png?width=390&amp;height=158&amp;face=0_0_390_158');"></div>
<div class="og-text">
<p class="og-title" data-ke-size="size16">공공데이터 포털</p>
<p class="og-desc" data-ke-size="size16">국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase</p>
<p class="og-host" data-ke-size="size16">www.data.go.kr</p>
</div>
</figure>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">공공데이터를 활용하기 위해서는 해당 API 키가 필요하기 때문에, 먼저 API 키를 발급받는 것이 필수적인 단계입니다. 저는 여러 가지 공공 데이터를 활용할 수 있는 <a style="color: #000000;" href="https://www.data.go.kr/index.do" target="_blank" rel="noopener">공공데이터포털</a>을 통해 API 키를 발급받을 예정입니다.</p>
<figure data-ke-type="image" data-ke-style="alignCenter" data-ke-mobilestyle="widthOrigin"><img decoding="async" src="https://blog.kakaocdn.net/dn/bC5dIf/btsJCTQWfsE/6h2JfRsCEBIIeKVgSYjUh1/img.png" data-origin-width="1280" data-origin-height="1292" data-is-animation="false" alt="img" title="파이썬 부동산 매매가 조회 프로그램 만들기 1편 22"></figure>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">저는 주로 다음과 같은 API를 이용할 계획입니다:</p>
<ol style="list-style-type: decimal; background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-list-type="decimal">
<li><b>아파트 매매 실거래 상세자료 조회</b><br />
이 API는 아파트의 최근 매매 거래 내역을 조회할 수 있는 기능을 제공합니다. 이를 통해 아파트의 실거래가를 확인하고, 해당 지역의 시세를 파악할 수 있습니다.</li>
<li><b>연립다세대 매매 실거래자료 조회</b><br />
아파트뿐만 아니라 연립주택이나 다세대 주택의 매매가도 중요한 정보입니다. 이 API를 이용하면 연립다세대 주택의 실거래가를 조회할 수 있습니다.</li>
</ol>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">단독주택이나 다가구 주택의 실거래가는 이번 프로젝트에서는 크게 신경 쓰지 않으려고 합니다. 하지만 하나의 API 키를 발급받으면, 해당 키로 여러 권한을 동시에 부여받을 수 있기 때문에 나중에 필요하다면 추가적인 데이터를 쉽게 얻을 수 있을 것입니다.</p>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">API 키를 발급받기 위해서는 먼저 공공데이터포털에 회원가입을 해야 합니다. 가입 절차는 간단하며, 소셜 네트워크 계정(<a href="https://2days.kr/16/12/13/70501/aboda/">SNS</a>)을 이용해 간편하게 회원가입을 할 수 있습니다. 회원가입이 완료되면, 원하는 API 페이지로 이동하여 &#8216;활용신청&#8217;을 선택합니다. 이 과정에서 이용 약관에 동의하고 필요한 정보를 입력하면 API 사용 신청이 완료됩니다.</p>
<h3 style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size23">API 승인 확인 및 키 저장</h3>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">API를 신청한 후에는 &#8216;마이페이지&#8217;로 이동하여 &#8216;개발계정&#8217; 섹션에서 신청한 API가 승인되었는지 확인해야 합니다. 승인 상태를 확인한 후, 해당 API의 상세 페이지로 이동하면 &#8216;일반 인증키&#8217;가 제공됩니다. 이 인증키는 인코딩된 것과 디코딩된 것이 각각 한 개씩 제공되는데, 이 둘 중 하나를 선택해서 사용할 수 있습니다.</p>
<figure data-ke-type="image" data-ke-style="alignCenter" data-ke-mobilestyle="widthOrigin"><img decoding="async" src="https://blog.kakaocdn.net/dn/byVQYF/btsJCzlfKrg/XmzltLw72jQXVaAonQ0X0K/img.png" data-origin-width="1280" data-origin-height="1271" data-is-animation="false" alt="img" title="파이썬 부동산 매매가 조회 프로그램 만들기 1편 23"></figure>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">인증키가 발급된 후에는, &#8216;미리보기&#8217; 기능을 이용해 API가 정상적으로 작동하는지 확인할 수 있습니다. &#8216;미리보기&#8217; 버튼을 클릭하면, 실제로 API 호출이 제대로 이루어지는지 테스트할 수 있습니다. API 호출이 정상적으로 이루어지면, 해당 데이터를 확인할 수 있으며, 이를 통해 내가 원하는 매매가 데이터를 조회할 수 있습니다.</p>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">다만, API를 발급받은 후 즉시 호출이 가능하지 않을 수 있습니다. 저의 경우에는 API 키를 일요일에 발급받았는데, 실제로 사용 가능했던 것은 월요일부터였습니다. 주말에 발급을 받았기 때문에 처리가 지연된 것 같기도 하지만, 정확한 이유는 알 수 없습니다. 따라서 API 키를 발급받은 후 시간이 조금 지나야 정상적으로 사용할 수 있는 점을 유의해야 합니다.</p>
<h3 style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size23">API 키 저장 및 활용 준비</h3>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">API가 정상적으로 호출되는 것을 확인했다면, 이제 이 인증키를 안전한 곳에 저장해두어야 합니다. 나중에 프로그램을 개발할 때 이 키를 활용해야 하므로, 쉽게 접근할 수 있는 파일이나 환경 변수에 저장하는 것이 좋습니다. 인증키는 개인 정보와 관련된 중요한 데이터이기 때문에, 외부에 노출되지 않도록 주의해야 합니다.</p>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">API 키 발급이 완료되면, 이제 본격적으로 파이썬으로 매매가 조회기를 개발할 준비가 끝난 것입니다. 다음 단계에서는 실제로 API를 호출하여 데이터를 가져오는 방법과, 이 데이터를 활용해 내가 원하는 형태로 가공하는 방법에 대해 설명하겠습니다.</p>
<p style="background-color: #ffffff; color: #0d0d0d; text-align: start;" data-ke-size="size16">지금까지 API 키 발급받는 과정에 대해 살펴봤습니다. 이제부터는 본격적으로 파이썬 코드를 작성하며, 매매가 조회기를 만들어보도록 하겠습니다. 앞으로의 과정에서는 실거래가 데이터를 파이썬으로 어떻게 처리할지, 그리고 그 데이터를 기반으로 시세를 분석하는 방법에 대해 구체적으로 다뤄보겠습니다.</p>
<p data-ke-size="size16"><a href="https://2days.kr/15/10/23/7728/coding/">블로그 키워드 생성 파이썬 코드 Python 마케팅 홍보 키워드에도 좋아요</a></p>
<!-- AI CONTENT END 8 -->
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
