Skip to content

Commit

Permalink
Merge pull request #38 from WooilJeong/develop
Browse files Browse the repository at this point in the history
update: 국세청 사업자등록정보 진위확인 및 상태조회 서비스 추가
  • Loading branch information
WooilJeong authored Dec 18, 2022
2 parents 5e480cd + ecf3576 commit aa2f27e
Show file tree
Hide file tree
Showing 10 changed files with 625 additions and 101 deletions.
77 changes: 77 additions & 0 deletions PublicDataReader/PublicDataPortal/nts.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
import requests
import pandas as pd


class Nts:
"""
NTS Open API 클래스
"""

def __init__(self, serviceKey=None):
self.serviceKey = serviceKey
self.url_dict = {
"진위확인": "https://api.odcloud.kr/api/nts-businessman/v1/validate",
"상태조회": "https://api.odcloud.kr/api/nts-businessman/v1/status",
}

def validate(self, businesses):
"""
사업자등록정보 진위확인 API
Parameters
----------
businesses : list, DataFrame
사업자등록정보 리스트 (1회 호출 시 최대 100개까지 조회 가능)
Returns
-------
DataFrame
진위확인 결과
"""
url = self.url_dict["진위확인"]
params = {
"serviceKey": self.serviceKey,
}
if type(businesses) == pd.DataFrame:
businesses = businesses.to_dict("records")
json_data = {
"businesses": businesses,
}
try:
response = requests.post(url, params=params, json=json_data)
df = pd.json_normalize(response.json()['data'])
except Exception as e:
print("Error")
print(e)
return
return df

def status(self, b_no):
"""
사업자등록정보 상태조회 API
Parameters
----------
b_no : list
사업자등록번호 (1회 호출 시 최대 100개까지 조회 가능)
Returns
-------
DataFrame
상태조회 결과
"""
url = self.url_dict["상태조회"]
params = {
"serviceKey": self.serviceKey,
}
data = {
"b_no": b_no,
}
try:
response = requests.post(url, params=params, json=data)
df = pd.DataFrame(response.json()['data'])
except Exception as e:
print("Error")
print(e)
return
return df
2 changes: 1 addition & 1 deletion PublicDataReader/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@

__all__ = [
"__version__", "__author__", "__contact__", "__github__",
"Transaction", "Building", "StoreInfo", "Transportation", "Kosis", "VworldData",
"Transaction", "Building", "StoreInfo", "Transportation", "Kosis", "VworldData", "Kamco", "Nts",
"code_bdong", "get_vworld_data_api_info_by_dataframe", "get_vworld_data_api_info_by_dict",
]
2 changes: 1 addition & 1 deletion PublicDataReader/config/info.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "1.0.5"
__version__ = "1.0.6"
__author__ = "정우일(Wooil Jeong)"
__contact__ = "[email protected]"
__github__ = "https://github.com/WooilJeong/PublicDataReader"
3 changes: 3 additions & 0 deletions PublicDataReader/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,8 @@
# 한국자산관리공사 Open API 통합
from PublicDataReader.PublicDataPortal.kamco import Kamco

# 국세청 Open API
from PublicDataReader.PublicDataPortal.nts import Nts

# 코드 데이터 조회
from PublicDataReader.utils.code import code_bdong, get_vworld_data_api_info_by_dataframe, get_vworld_data_api_info_by_dict
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,18 @@

## PublicDataReader

**PublicDataReader****Open API를 통해 공공 데이터를 조회하는 과정을 자동화하는 오픈소스 로우코드 파이썬 라이브러리**입니다. 즉시 분석에 활용할 수 있는 형태로 데이터를 조회할 수 있어 생산성 향상에 도움을 주는 도구입니다. 공공 데이터 제공처 마다 서로 다른 API 명세를 확인하는 작업, 명세에 따라 적합한 형식으로 데이터를 요청하는 코드를 작성하는 작업 그리고 반환된 데이터를 분석 가능한 형태로 가공하는 작업 등의 번거로운 작업들을 단 몇 줄의 코드로 자동화할 수 있습니다. 발급받은 **Open API 서비스 인증키****PublicDataReader** 라이브러리만으로 원하는 데이터를 쉽게 조회할 수 있습니다.
PublicDataReader는 Open API를 사용하여 공공 데이터를 자동으로 조회할 수 있는 파이썬 라이브러리입니다. 이 도구를 사용하면 생산성을 높일 수 있게 됩니다. PublicDataReader는 Open API 서비스 인증키와 함께 사용하면 간편하게 공공 데이터를 조회할 수 있습니다. 일반적인 공공 데이터 조회 과정에서는 API 명세를 찾고, 적절한 형식으로 요청을 작성하고, 반환된 데이터를 정리하는 과정이 필요합니다. PublicDataReader는 이러한 과정을 자동화해주기 때문에 코드 작성이 간결해집니다.

<br>

## 설치 방법

- Windows: CMD(명령 프롬프트)를 열어 아래 Shell 명령어를 입력
- Mac: Terminal(터미널)을 열어 아래 Shell 명령어를 입력
1. 운영체제(OS)에 따라 아래 중 하나를 선택합니다.

- Windows: CMD(명령 프롬프트) 실행
- Mac: Terminal(터미널) 실행

2. 아래 Shell 명령어를 입력 후 실행합니다.

```bash
pip install PublicDataReader --upgrade
Expand All @@ -40,6 +44,7 @@ pip install PublicDataReader --upgrade
- 국토교통부 건축물대장정보 서비스
- 소상공인 상가업소 정보 조회 서비스
- 한국자산관리공사 공매물건 조회 서비스
- 국세청 사업자등록정보 진위확인 및 상태조회 서비스
- [KOSIS 국가통계포털 데이터 조회 방법 예시](https://github.com/WooilJeong/PublicDataReader/blob/main/assets/docs/kosis.md)
- KOSIS 통계 자료 조회 방법
- [서울 열린데이터광장 데이터 조회 방법 예시](https://github.com/WooilJeong/PublicDataReader/blob/main/assets/docs/seoul.md)
Expand Down
66 changes: 64 additions & 2 deletions assets/docs/portal.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ PublicDataReader를 통해 공공데이터포털에서 제공하는 Open API 서
- [국토교통부 건축물대장정보 서비스](#국토교통부-건축물대장정보-서비스)
- [소상공인 상가업소 정보 조회 서비스](#소상공인-상가업소-정보-조회-서비스)
- [한국자산관리공사 공매물건 조회 서비스](#한국자산관리공사-공매물건-조회-서비스)

- [국세청 사업자등록정보 진위확인 및 상태조회 서비스](#국세청-사업자등록정보-진위확인-및-상태조회-서비스)

## 국토교통부 실거래가 정보 조회 서비스

Expand Down Expand Up @@ -348,4 +348,66 @@ params = {

df = API.get_data(service, function, **params)
df.head()
```
```


## 국세청 사업자등록정보 진위확인 및 상태조회 서비스

- [국세청 사업자등록정보 진위확인 및 상태조회 서비스 신청 페이지](https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15081808)

- 사업자등록정보 진위확인 서비스

```python
import PublicDataReader as pdr
print(pdr.__version__)

# 공공 데이터 포털 OpenAPI 서비스 인증키 입력하기 (디코딩키로 입력)
serviceKey = "공공 데이터 포털에서 발급받은 서비스 키(디코딩 키)"

# 조회 대상 목록
businesses = [{
'b_no': '0000000000',
'start_dt': '20000101',
'p_nm': '홍길동',
'p_nm2': '',
'b_nm': '',
'corp_no': '',
'b_sector': '',
'b_type': ''},
{'b_no': '1111111111',
'start_dt': '20100101',
'p_nm': '홍길동',
'p_nm2': '',
'b_nm': '',
'corp_no': '',
'b_sector': '',
'b_type': ''},
{'b_no': '2222222222',
'start_dt': '20200101',
'p_nm': '홍길동',
'p_nm2': '',
'b_nm': '',
'corp_no': '',
'b_sector': '',
'b_type': ''
}]

# 진위확인
df = API.validate(businesses)
```

- 사업자등록정보 상태조회 서비스

```python
import PublicDataReader as pdr
print(pdr.__version__)

# 공공 데이터 포털 OpenAPI 서비스 인증키 입력하기 (디코딩키로 입력)
serviceKey = "공공 데이터 포털에서 발급받은 서비스 키(디코딩 키)"

# 조회 대상 목록 (사업자등록번호 리스트)
b_no = ['0000000000', '1111111111']

# 상태조회
df = API.status(b_no)
```
Loading

0 comments on commit aa2f27e

Please sign in to comment.