공공데이터 환율 정보 오픈 API xml 파싱 - json_normalize()
들어가며
공공데이터포털의 한국수출입은행 환율 정보 xml을 파싱하는 방법을 소개합니다. 인증키를 발급받고, pandas의 json_normalize를 활용하여 편리하게 데이터프레임 형태로 데이터를 추출할 수 있습니다.
- 인증키 발급
- 데이터 파싱
- 데이터프레임 변환
인증키 발급
환율 정보를 추출하기 위해서 오픈API 인증키 발급이 우선입니다. 아래와 같이 인증키를 발급한 후에 파싱할 수 있습니다.
먼저 공공데이터포털에 로그인 후, 오른쪽의 바로가기를 통하여 한국수출입은행으로 이동합니다.
다음과 같이 약관 동의, 신청서 작성 후 인증키를 발급받습니다.
발급받은 인증키는 '나의 인증키 발급내역'에서 확인할 수 있습니다.
데이터 파싱
한국수출입은행에서 제공하는 Open API 제공목록 중 현재 환율 API를 파싱하겠습니다.
아래 목록에서 현재 환율 API로 이동합니다.
현재 환율 API의 요청 URL은 다음과 같습니다. 이제 파이썬을 통해 URL을 요청하겠습니다.
필요한 패키지인 requests를 import 하고, 위의 URL을 url 변수로 저장합니다. 그리고 앞에서 발급받은 인증키를 authkey, 검색요청날짜를 searchdate, 검색요청 API타입을 data에 입력합니다. 요청변수는 아래 이미지를 참고하면 됩니다.
import requests
url = 'https://www.koreaexim.go.kr/site/program/financial/exchangeJSON'
params ={'authkey' : '발급받은 인증키 입력',
'searchdate' : '20240131',
'data' : 'AP01'}
입력한 파라미터들과 함께 url을 response로 요청하면 결과는 다음과 같습니다.
response = requests.get(url, params=params).json()
response
데이터프레임 변환
위에서 json 형태로 파싱한 데이터를 데이터프레임으로 변환하는 방법을 소개합니다.
필요한 패키지인 pandas를 import 하고, pandas의 json_normalize 함수를 통하여 위의 response 데이터를 변수 df에 저장합니다. df를 확인하면, 데이터프레임 형태인 것을 확인할 수 있습니다.
import pandas as pd
df = pd.json_normalize(response)
print('len(df): ',len(df))
print('type(df): ',type(df))
df.head()
전체 코드
import requests
import pandas as pd
# URL
url = 'https://www.koreaexim.go.kr/site/program/financial/exchangeJSON'
params ={'authkey' : '발급받은 인증키 입력',
'searchdate' : '20240131',
'data' : 'AP01'}
# URL 요청
response = requests.get(url, params=params).json()
response
# 데이터프레임 변환
df = pd.json_normalize(response)
print('len(df): ',len(df))
print('type(df): ',type(df))
df.head()
'Python' 카테고리의 다른 글
[파이썬] 도커에서 파이썬 실행 w/ 도커 설치, 이미지 빌드 (3) | 2024.11.25 |
---|---|
[파이썬] PostgreSQL DB 연동 - DB 연결 및 조회, psycopg2 (1) | 2024.11.20 |
[파이썬] plotly를 활용한 꺾은선그래프 - plotly.express (5) | 2024.11.09 |
[파이썬] 모듈화를 활용한 함수 호출, 재사용성 증가 (4) | 2024.11.08 |
[파이썬] plotly를 활용한 막대그래프 - plotly.express (3) | 2024.11.07 |