Python을 배워보자

오피넷 API를 활용한 파이썬 예제: 유가 정보 쉽게 가져오기 가이드

_Blue_Sky_ 2024. 11. 17. 13:06
728x90
728x90

 

오피넷은 한국석유공사에서 운영하는 유가 정보 플랫폼으로, 전국 주유소의 유종별 판매 가격, 주유소 위치 등 다양한 유가 정보를 제공합니다. 이러한 유가 정보를 파이썬을 활용하여 손쉽게 가져오고 분석할 수 있다면, 좀 더 효율적으로 유가 동향을 파악하고 다양한 분석을 할 수 있겠죠?

이번 글에서는 오피넷 API를 활용하여 파이썬으로 유가 정보를 가져오고, 데이터를 가공하여 분석하는 과정을 단계별로 자세히 설명해 드리겠습니다.

1. 오피넷 API 신청 및 키 발급

  • 오피넷 API 신청: 오피넷 홈페이지에서 API 이용 신청을 하고, 승인되면 API 키를 발급받습니다. API 키는 오피넷 API를 호출할 때 필요한 인증 정보입니다.
  • API 문서 확인: 발급받은 API 키와 함께 제공되는 API 문서를 꼼꼼히 확인하여 API의 사용 방법, 요청 파라미터, 응답 형식 등을 파악합니다.

2. 필요한 라이브러리 설치

pip install requests beautifulsoup4 pandas matplotlib seaborn
  • requests: 웹 페이지에서 데이터를 가져오는 데 사용되는 라이브러리입니다.
  • BeautifulSoup4: HTML/XML 데이터를 파싱하여 원하는 정보를 추출하는 데 사용되는 라이브러리입니다.
  • pandas: 데이터 분석 및 가공에 유용한 라이브러리입니다.
  • matplotlib, seaborn: 데이터 시각화에 사용되는 라이브러리입니다.
728x90

3. 파이썬 코드 작성

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 오피넷 API 키
api_key = "YOUR_API_KEY"

# API 호출 URL 설정 (예시)
url = "https://www.opinet.co.kr/api/edi/univ/univ_oil_lst.do"

# 요청 파라미터 설정 (API 문서 참고)
params = {
    "key": api_key,
    "std_day": "20231101",  # 기준일
    "oil_gb": "B027",       # 유종 (휘발유)
    "data_gubun": "D"    # 데이터 구분 (일별)
}

# API 호출
response = requests.get(url, params=params)

# JSON 데이터 파싱
data = response.json()

# pandas DataFrame으로 변환
df = pd.DataFrame(data['data'])

# 필요한 열 선택 및 데이터 가공
df = df[['지역', '상표', '상품명', '단위가격']]

# 데이터 확인
print(df.head())

# 데이터 시각화 (예시)
import matplotlib.pyplot as plt
import seaborn as sns

# 지역별 평균 가격 시각화
sns.barplot(x='지역', y='단위가격', data=df)
plt.title('지역별 휘발유 평균 가격')
plt.show()

4. 코드 설명

  • API 호출: requests.get 함수를 사용하여 API를 호출하고, 응답 데이터를 JSON 형식으로 파싱합니다.
  • 데이터 가공: 파싱된 JSON 데이터를 pandas DataFrame으로 변환하고, 필요한 열만 선택하여 데이터를 가공합니다.
  • 데이터 시각화: matplotlib과 seaborn 라이브러리를 사용하여 다양한 시각화를 수행합니다. 예를 들어, 지역별 평균 가격을 막대 그래프로 시각화하거나, 시간에 따른 유가 변동을 선 그래프로 시각화할 수 있습니다.

5. 추가적인 분석

  • 시간에 따른 유가 변동 분석: 기준일을 변경하여 시간에 따른 유가 변동을 분석할 수 있습니다.
  • 유종별 가격 비교: oil_gb 파라미터를 변경하여 다양한 유종의 가격을 비교할 수 있습니다.
  • 지역별 가격 분포 분석: 지역별 가격 분포를 히스토그램이나 박스플롯으로 시각화하여 분석할 수 있습니다.
  • 특정 상표의 가격 비교: 상표 열을 기준으로 특정 상표의 가격을 비교할 수 있습니다.
728x90

주의사항:

  • 오피넷 API는 유료 API와 무료 API로 나뉘며, 사용 가능한 기능과 호출 횟수에 제한이 있을 수 있습니다. API 문서를 참고하여 사용 조건을 확인해야 합니다.
  • API 호출 횟수가 많아지면 서버에 부하를 줄 수 있으므로, 적절한 시간 간격을 두고 API를 호출해야 합니다.

 

오피넷 API를 활용하여 파이썬으로 유가 정보를 가져오고 분석하는 방법을 알아보았습니다. 이를 통해 유가 동향을 파악하고, 다양한 분석을 수행하여 유용한 정보를 얻을 수 있습니다.

728x90
728x90