
요즘 여러 기관에서는 여러 api를 open하고 있다.
전공 탓인지 모르겠지만 나는 꽤 국회 open api를 다룰 일이 많았다.
그래서 이참에 오픈 api를 어떻게 불러오고 활용하는지 이야기해보고자 한다.
https://open.assembly.go.kr/portal/openapi/main.do


그러면 이렇게 열쇠 아이콘 옆에 인증키가 쭉 써있을 것이다!

이렇게 아주 친절하게 설명해주고 있다.
기본 인자, 요청 인자가 있고,
요청인자에서 필수 인 것은 추후 요청 파라미터로 설정해주어야 한다.
import requests
import pandas as pd
# API 키 설정
API_KEY = '본인 키 여기에 작성'
# 본인이 불러오고자 하는 요청 주소 작성
BASE_URL = 'https://open.assembly.go.kr/portal/openapi/nwbpacrgavhjryiph'
# API 요청 URL
params = {
'Key': API_KEY,
'Type': 'json',
'Age' : '21',
'BILL_NM' : '마약', # 의안명은 선택임
}
기본 인자로 설정되어있는건 내가 특별히 수정하고 싶지 않는 이상 기본 값이 지정되어있기에 굳이 작성하지 않아도 된다.
요청 인자에서 대수 즉, Age가 필수였기에 해당 내용도 입력해주었다.
또한, 나는 특정 법률안에 대해서 알고 싶은 것이었기에 의안명 (BILL_NM)도 설정해주었다.
response = requests.get(BASE_URL, params=params)
if response.status_code == 200:
try:
data = response.json()
items = data['nwbpacrgavhjryiph'][1]['row']
df = pd.DataFrame(items)[['BILL_NO', 'BILL_NM', 'PROC_RESULT_CD', 'PROPOSE_DT', 'RGS_PRESENT_DT']] # BILL_NO, BILL_NM 열만 선택
# 표 형식으로 출력
print(df.to_string(index=False))
except (KeyError, IndexError) as e:
print(f"오류: {e}")
else:
print(f'Error: {response.status_code}, {response.text}')
나는 표 형식으로 예쁘게 보고 싶었기에 data frame으로 출력했다.
또한, 여기서 원하는 열만 출력되도록 설정해주었다.
nwbpacrgavhjryiph는 요청 url 주소 끝에 있는 키로 데이터를 출력하기 위해 다음과 같이 짜준 것이다!
이렇게 하면 잘 출력될 것이다 !!