[API] 공공데이터 API 접속하기

2023. 6. 2. 07:02Computer Science

728x90

기상청 단기예보 조회서비스를 이용하여 api를 호출해보자.

❖ 맥북(Mac) 화면 캡쳐 방법(단축키)

1. 전체화면 스크린샷: Command + Shift + 3

2. 영역지정 캡처: Command + Shift + 4

3. 특정 창 캡처: Command + Shift + 4 누른 후, SpaceBar

4. 스크린샷 앱 이용: Command + Shift + 5

5. 터치바 캡처: Command + Shift + 6

6. 미리보기 앱 이용: 미리보기앱 > 파일 > 스크린샷 ("전체화면" 사용시, 마우스, 드래그 영역 함께 캡쳐 가능)

* Only 복사(저장X) : Command + Shift + Control + 3/4/6

기상청 단기예보 조회서비스를 공공데이터 api를 이용해 JSON 형식으로 반환해보자.

이렇게 공공데이터 포탈(www.data.go.kr)을 이용해 api에 접근할 수 있다.

활용신청 상세기능정보에서 초단기실황조회를 클릭하고,

각 변수에 원하는 값을 집어넣는다.

ServiceKey : 서비스 정보에서 받은 일반 인증키

base_data : 발표 일자(최근 24시간 데이터만 제공)

base_time : 발표 시각(02, 05, 08, 11, 14, 17, 20, 23시에 발표)

nx : 예보지점 x좌표값(같이 제공되는 엑셀에서 확인 가능)

ny : 예보지점 y좌표값(같이 제공되는 엑셀에서 확인 가능)

numOfRows : 한 페이지 결과 수(높으면 많은 값이 한번에 온다)

pageNo : 페이지 번호

_type : 반환되는 형식.

기본은 xml이나, json이 조금 더 편해서 json으로 받는다.

 

호출하면 이런 식으로 데이터가 XML 형태로 주어진다.

호출형태를 JSON으로 지정하면 다음과 같은 결과가 주어진다.

번외_사업자번호 등록 API 호출하기

import requests

headers = {
    'accept': 'application/json',
    'Authorization': 's+v4VsJPXW/BBbZSDIEz4+91lr3Zn6vs8nzbQgwBeoZKBzR3xxNx+6S0KvgasNlNlOggXYUZIyOtPbNbIlHIdw==',
    'Content-Type': 'application/json',
}

params = {
    'serviceKey': 's+v4VsJPXW/BBbZSDIEz4+91lr3Zn6vs8nzbQgwBeoZKBzR3xxNx+6S0KvgasNlNlOggXYUZIyOtPbNbIlHIdw==',
}

json_data = {
    'b_no': [
        '0000000000',
    ],
}

response = requests.post('https://api.odcloud.kr/api/nts-businessman/v1/status', params=params, headers=headers, json=json_data)


import pprint
pprint.pprint(response.json()) # 출력결과 확인

 

❯ /usr/local/bin/python3 /Users/imhyeog/Desktop/workspace/worker_api.py
{'data': [{'b_no': '0000000000', # 사업자번호 입력
           'b_stt': '',
           'b_stt_cd': '',
           'end_dt': '',
           'invoice_apply_dt': '',
           'rbf_tax_type': '',
           'rbf_tax_type_cd': '',
           'tax_type': '국세청에 등록되지 않은 사업자등록번호입니다.',
           'tax_type_cd': '',
           'tax_type_change_dt': '',
           'utcc_yn': ''}],
 'request_cnt': 1,
 'status_code': 'OK'}
❯ /usr/local/bin/python3 /Users/imhyeog/Desktop/workspace/worker_api.py
{'data': [{'b_no': '1272195603',
           'b_stt': '계속사업자',
           'b_stt_cd': '01',
           'end_dt': '',
           'invoice_apply_dt': '',
           'rbf_tax_type': '해당없음',
           'rbf_tax_type_cd': '99',
           'tax_type': '부가가치세 일반과세자',
           'tax_type_cd': '01',
           'tax_type_change_dt': '',
           'utcc_yn': 'N'}],
 'match_cnt': 1,
 'request_cnt': 1,
 'status_code': 'OK'}
728x90

'Computer Science' 카테고리의 다른 글

[OS] File System에서의 레코드와 필드  (0) 2023.06.22
[Back-End] 웹 크롤러 작업 흐름  (0) 2023.06.14
[DB]SQLD_2  (0) 2023.05.25
[DB] SQLD_1  (0) 2023.05.21
[OS] vi 편집기  (0) 2023.05.09