๐ก๊ตญ๊ฐํต๊ณํฌํธ(KOSIS) ์์ ์ ๊ณตํ๋ openAPI๋ฅผ ์ด์ฉํด ํต๊ณ๋ฐ์ดํฐ๋ฅผ ์์งํด๋ณธ๋ค.
๊ตญ๊ฐํต๊ณํฌํธ์์ ์ ๊ณตํ๋ openAPI๋ฅผ ๊ฐ์ ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฌํ๋ ํ๋ก์ ํธ๊ฐ ์๊ฒผ๋ค.
์ผ๋จ target์ AWS S3 ์ผ๊ฒ์ผ๋ก ์ถ์ธก. ํ์คํ ์ฉ ํ ์คํธ๋ฅผ ์งํํ๋ค.
- KOSIS ํต๊ณ์๋ฃ openAPI ์ฌ์ฉ
- KOSIS ๋์ฉ๋ํต๊ณ์๋ฃ openAPI ๋ฅผ ์ด์ฉํด parquet ํ์ผ ์์ฑ
- KOSIS openAPI๋ฅผ ์ด์ฉํด ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ AWS S3์ parquet ํ์ผ๋ก ์ ์ฅ
์ผ๋จ KOSIS์ openAPI ์ฌ์ฉ๋ฒ์ ํ์ธํด๋ณธ๋ค.
KOSIS openAPI ์ฌ์ดํธ๋ก ์ด๋ํ๋ค. (https://kosis.kr/openapi/index/index.jsp)
ํ์ฉ์ ์ฒญ์ ํ๊ณ , [๊ฐ๋ฐ๊ฐ์ด๋] - [ํต๊ณ์๋ฃ] ๋ก ์ด๋ํ๋ค.
[URL ์์ฑ] ์ผ๋ก ์ด๋ํด, ์ฌ์ฉํ ํต๊ณํ๋ฅผ ์กฐํํ๊ณ ,
์ฌ์ฉ์ฌ๋ถ๋ฅผ ์ฒดํฌํ๊ณ [์ ํ] ์ ํด๋ฆญํ๋ค.
์กฐํํ ํญ๋ชฉ๋ค๊ณผ, ์ถ๋ ฅํํ, ์กฐํ๊ธฐ๊ฐ์ ์ ํํ๊ณ [URL๋ณด๊ธฐ]๋ฅผ ํด๋ฆญํ๋ค.
์์ฑ๋ url์ ๋ธ๋ผ์ฐ์ ์ ๋ถ์ฌ ๋ฃ์ผ๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ ํํ ๋ฐ์ดํฐ ํฌ๋งท์ผ๋ก ์ถ๋ ฅ๋๋ค.
import json
from urllib.request import urlopen
with urlopen("https://kosis.kr/openapi/Param/statisticsParameterData.do?method=getList&apiKey=apikey=&itmId=16135A1+16135A3+16135A5+&objL1=A010+A011+A012+A013+A014+A241+&objL2=&objL3=&objL4=&objL5=&objL6=&objL7=&objL8=&format=json&jsonVD=Y&prdSe=Y&newEstPrdCnt=1&orgId=135&tblId=DT_135N_1A001A") as url:
json_file = url.read()
py_json = json.loads(json_file.decode('utf-8'))
# print(py_json)
for i, v in enumerate(py_json):
if i == 0 :
print(v['TBL_NM'])
print(v['PRD_DE'] + "\\t/\\t " + v['C1_NM']+ "\\t/\\t " + v['ITM_NM'] + "\\t/\\t" + v['DT'])
import json
from urllib.request import urlopen
import pandas as pd
with urlopen("https://kosis.kr/openapi/Param/statisticsParameterData.do?method=getList&apiKey=apikey&itmId=16135A1+16135A3+16135A5+&objL1=A010+A011+A012+A013+A014+A241+&objL2=&objL3=&objL4=&objL5=&objL6=&objL7=&objL8=&format=json&jsonVD=Y&prdSe=Y&newEstPrdCnt=1&orgId=135&tblId=DT_135N_1A001A") as url:
json_file = url.read()
py_json = json.loads(json_file.decode('utf-8'))
data = []
for i, v in enumerate(py_json):
if i == 0 :
print(v['TBL_NM'])
value = []
value.append(v['PRD_DE'])
value.append(v['C1_NM'])
value.append(v['ITM_NM'])
value.append(v['DT'])
value.append(v['UNIT_NM'])
data.append(value)
df = pd.DataFrame(data)
df.columns = ['yyyyymm', 'category1', 'category2', 'value', 'unit']
df.head()
print(df)
PS C:\\workspace\\api> & C:/Users/์ํ์น/AppData/Local/Microsoft/WindowsApps/python3.8.exe c:/workspace/api/test.py
๋ฒ์ฃ์ ๋ฐ์ ๊ฒ๊ฑฐ์ํฉ(์ด๊ด)
yyyyymm category1 category2 value unit
0 2020 ์ฌ๊ธฐ ๋ฐ์๊ฑด์ 340925 ๊ฑด
1 2020 ์ฌ๊ธฐ ๊ฒ๊ฑฐ๊ฑด์ 234065 ๊ฑด
2 2020 ์ฌ๊ธฐ ๊ฒ๊ฑฐ์ธ์ 240531 ๋ช
3 2020 ์ปดํจํฐ๋ฑ์ฌ์ฉ์ฌ๊ธฐ ๋ฐ์๊ฑด์ 7451 ๊ฑด
4 2020 ์ปดํจํฐ๋ฑ์ฌ์ฉ์ฌ๊ธฐ ๊ฒ๊ฑฐ๊ฑด์ 2050 ๊ฑด
5 2020 ์ปดํจํฐ๋ฑ์ฌ์ฉ์ฌ๊ธฐ ๊ฒ๊ฑฐ์ธ์ 2595 ๋ช
6 2020 ๋ถ๋น์ด๋ ๋ฐ์๊ฑด์ 83 ๊ฑด
7 2020 ๋ถ๋น์ด๋ ๊ฒ๊ฑฐ๊ฑด์ 67 ๊ฑด
8 2020 ๋ถ๋น์ด๋ ๊ฒ๊ฑฐ์ธ์ 108 ๋ช
9 2020 ํธ์์์ค๋ถ์ ์ด์ฉ ๋ฐ์๊ฑด์ 1638 ๊ฑด
10 2020 ํธ์์์ค๋ถ์ ์ด์ฉ ๊ฒ๊ฑฐ๊ฑด์ 1287 ๊ฑด
11 2020 ํธ์์์ค๋ถ์ ์ด์ฉ ๊ฒ๊ฑฐ์ธ์ 1519 ๋ช
12 2020 ์ ๊ธฐํต์ ๊ธ์ต์ฌ๊ธฐํผํด๊ธํ๊ธ์๊ดํํน๋ณ๋ฒ ๋ฐ์๊ฑด์ 534 ๊ฑด
13 2020 ์ ๊ธฐํต์ ๊ธ์ต์ฌ๊ธฐํผํด๊ธํ๊ธ์๊ดํํน๋ณ๋ฒ ๊ฒ๊ฑฐ๊ฑด์ 286 ๊ฑด
14 2020 ์ ๊ธฐํต์ ๊ธ์ต์ฌ๊ธฐํผํด๊ธํ๊ธ์๊ดํํน๋ณ๋ฒ ๊ฒ๊ฑฐ์ธ์ 368 ๋ช
15 2020 ๋ณดํ์ฌ๊ธฐ๋ฐฉ์งํน๋ณ๋ฒ ๋ฐ์๊ฑด์ 3523 ๊ฑด
16 2020 ๋ณดํ์ฌ๊ธฐ๋ฐฉ์งํน๋ณ๋ฒ ๊ฒ๊ฑฐ๊ฑด์ 3378 ๊ฑด
17 2020 ๋ณดํ์ฌ๊ธฐ๋ฐฉ์งํน๋ณ๋ฒ ๊ฒ๊ฑฐ์ธ์ 12973 ๋ช
PS C:\\workspace\\api>
'Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Virtualenv(venv) ๋ก python ๋ค๋ฅธ ๋ฒ์ ผ ๊ฐ์ํ๊ฒฝ ์ค์ (0) | 2023.01.11 |
---|---|
KOSIS(๊ตญ๊ฐํต๊ณํฌํธ) ๋์ฉ๋ํต๊ณ์๋ฃ openAPI ์ฌ์ฉ (0) | 2022.12.02 |
kafka install (์์ฑ์ค) (0) | 2022.11.24 |
Docker ์ค์น ๋ฐ ์ฌ์ฉ (1) | 2022.11.18 |
Apache JMeter ๋ถํํ ์คํธ (2018) (0) | 2022.10.05 |