Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
WooilJeong committed Dec 18, 2022
1 parent 2b8e6d7 commit ecf3576
Show file tree
Hide file tree
Showing 6 changed files with 254 additions and 100 deletions.
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)
```
2 changes: 1 addition & 1 deletion test/develop.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
"version": "3.9.12 (main, Apr 4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)]"
},
"toc": {
"base_numbering": 1,
Expand Down
2 changes: 1 addition & 1 deletion test/test_kamco.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1287,7 +1287,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
"version": "3.9.12 (main, Apr 4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)]"
},
"toc": {
"base_numbering": 1,
Expand Down
168 changes: 168 additions & 0 deletions test/test_nts.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"ExecuteTime": {
"end_time": "2022-12-02T08:23:39.858809Z",
"start_time": "2022-12-02T08:23:39.839859Z"
}
},
"outputs": [],
"source": [
"import os\n",
"import sys\n",
"from pathlib import Path\n",
"sys.path.append(str(Path(os.getcwd()).parent))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import PublicDataReader as pdr\n",
"from config import API_KEY_INFO\n",
"print(pdr.__version__)\n",
"serviceKey = API_KEY_INFO.get(\"portal2\")"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"# NTS API Instance"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from PublicDataReader import Nts\n",
"API = Nts(serviceKey)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"# 결측치는 공백으로 처리\n",
"businesses = pd.read_excel(\"./dataset.xlsx\", dtype=str, na_values=\"\").fillna(\"\")\n",
"businesses\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df = API.validate(businesses)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"b_no = ['0000000000', '1111111111']\n",
"df = API.status(b_no)\n",
"df"
]
}
],
"metadata": {
"hide_input": false,
"kernelspec": {
"display_name": "Python 3.9.12 ('venv': venv)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12 (main, Apr 4 2022, 05:22:27) [MSC v.1916 64 bit (AMD64)]"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
"width": "234.707px"
},
"toc_section_display": true,
"toc_window_display": true
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"oldHeight": 237.13578,
"position": {
"height": "440.117px",
"left": "491.674px",
"right": "20px",
"top": "85.9445px",
"width": "613.965px"
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"varInspector_section_display": "block",
"window_display": false
},
"vscode": {
"interpreter": {
"hash": "fcea6e6e55b259976681c8a35a3648f8ff7299129df47a05aebb6686c5e7010e"
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Loading

0 comments on commit ecf3576

Please sign in to comment.