본문 바로가기
Python/Pandas

[API 다루기] XML 파일을 pandas 데이터프레임으로

by ISLA! 2023. 8. 7.

XML 파일을 pandas 데이터프레임으로 만들기

 

🧑🏻‍💻 코드 해석

  • url 변수에 주어진 URL로 HTTP 요청을 보내고, 그에 대한 응답을 response 변수에 저장
  • ET.fromstring(response.content)를 사용하여 response 변수에 저장된 XML 데이터를 ElementTree 객체로 파싱
  • data_list라는 빈 리스트를 만들기
    • >> 이 리스트는 나중에 데이터프레임을 만들기 위해 각 행을 딕셔너리 형태로 담을 것
  • root.findall('.//item')를 사용하여 XML 데이터에서 'item'라는 태그의 모든 요소들을 찾기
  • 각 item 태그에서 필요한 정보를 추출하여, data 딕셔너리에 저장
  • data_list에 모든 행에 해당하는 딕셔너리들이 저장됨
  • pd.DataFrame(data_list)를 호출하여 'data_list'를 활용하여 데이터프레임을 생성
import pandas as pd
import xml.etree.ElementTree as ET
import requests

url = "http://openapi.molit.go.kr/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTradeDev?serviceKey=bQ%2BkA%2BJkKjR0%2B08rFC7rRQBLEqB%2B9XsQl3PHQzXB%2BYlOhAeN01aylxCYkmPyQNfl93rWFZD0AosC9bI7RYV0%2Fw%3D%3D&pageNo=1&numOfRows=10&LAWD_CD=11110&DEAL_YMD=201512"
response = requests.get(url)

root = ET.fromstring(response.content)
data_list = []

for item in root.findall('.//item'):
    data = {}
    data['거래금액'] = item.find('거래금액').text
    data['건축연도'] = item.find('건축년도').text
    data['법정동'] = item.find('법정동').text
    data['아파트'] = item.find('아파트').text
    data['층'] = item.find('층').text
    data['전용면적'] = item.find('전용면적').text
    data_list.append(data)

df = pd.DataFrame(data_list)
df

 

결과

 

728x90