본문 바로가기
Python

[파이썬] 공공 데이터 포털 API 한국형사정책연구원 범죄통계 통합DB 정보 사용방법

by 퍼포먼스마케팅코더 2022. 8. 13.
반응형
이는 한국형사정책연구원에서 나온 범죄통계와 관련된 공공데이터포털 api의 사용방법입니다. 내용이 복잡해 보이네요. 실제로 제가 써봤는데 복잡해요. 코드도 굉장히 많고 이것은 범죄에 관심있는 분들에게 좋은 api 정보라고 생각합니다. 범죄 통계와 관련된 자료가 엄청 많아요. 코드만 찾아봤는데 대부분 통계표 아이디가 있어요. 아이디만 1천개가 넘어요. 이건 도저히 정리가 힘들 것 같아서 파이썬으로 코딩할 수 있는 내용만 작성한 거예요. 참고하시면 될 것 같습니다.

[파이썬] 공공 데이터 포털 API 한국형사정책연구원 범죄통계 통합DB 정보 사용방법

 

 

공공 데이터 포털 API 한국형사정책연구원 범죄통계 통합 DB 정보  API 키 발급

 그래서 두 부분이 있는데 우선 이것도 마찬가지로 api를 사용하기 위해서는 키를 발행해야 합니다. 관건은 공공데이터포털 측이 아닌 한국형사정책연구원과 관련된 사이트가 있습니다. 

https://www.crimestats.or.kr/portal/openapi/openApiActKeyPage.do

 

CCJS 범죄와 형사사법 통계정보

통계, 보고통계, 조사통계, 단일분석 DB, 통합분석 DB, 전국범죄피해조사 DB, 마이크로데이터, 테마통계, 분기별 범죄동향 리포트

www.crimestats.or.kr

 

파이썬 공공 데이터 포털 API 한국형사정책연구원 범죄통계 통합DB 정보 사용방법

공공 사이트 안에 들어가서 api키를 발급받고 그다음에 파이썬 코딩으로 보는데 처음에는 두 부분으로 제가 정리를 했는데 내용이 어려워요. 범죄와 통계에 관련된 내용 자체가 자료가 너무 많이 있으니까요. 밑에 제가 둘로 나눠서 정리를 했어요 출력값이 어떻게 나오고 코드를 뭘 넣으면 나오는지 단순히 여러분이 인증된 키만 넣기만 하면 바로 데이터가 다 나오게 해놨습니다. 참고해 보세요. 난해해지고 있어요. 그래서 이걸 데이터를 활용할 때 범죄 통계와 관련된 부분을 많이 공부하고 활용해야겠다는 생각이 들었습니다. 참고하시면 될 것 같습니다.

from urllib.request import urlopen
from urllib.parse import urlencode, unquote, quote_plus
import urllib
import requests
import json
import pandas as pd
from datetime import datetime,timedelta
import warnings
import xmltodict # 결과가 xml 형식으로 반환된다. 이것을 dict 로 바꿔주는 라이브러리다

warnings.filterwarnings('ignore')

#https://www.crimestats.or.kr/portal/openapi/openApiActKeyPage.do#

#인증키

#https://www.crimestats.or.kr/portal/openapi/openApiGuideCdPage.do #통계코드는 해당 기일을 보자.

key = ''   #키 발급
Type = 'json'
pIndex = '1'
pSize = '100'

STATBL_ID = 'T184463021456318'
DTACYCLE_CD = 'YY'
WRTTIME_IDTFR_ID = '2018'


url = 'https://www.crimestats.or.kr/openapi/Sttsapitbldata.do?STATBL_ID={}&DTACYCLE_CD={}&WRTTIME_IDTFR_ID={}'.format(STATBL_ID, DTACYCLE_CD, WRTTIME_IDTFR_ID)
response = requests.get(url, verify=False)

dict_data = xmltodict.parse(response.text) #xml을 json로 변환
json_data = json.dumps(dict_data, ensure_ascii=False)  #한글이 깨지면 ensure_ascii 코드를 False로 하면됨.
r_data = json.loads(json_data)  #json 변환

data = pd.DataFrame(r_data['Sttsapitbldata']['row'])  #데이터프레임으로 보자
data #오나료

#출력값
#STATBL_ID	통계표ID
#DTACYCLE_CD	자료주기
#WRTTIME_IDTFR_ID	자료시점
#ITM_ID		항목ID
#ITM_NM		항목명
#CLS_ID		분류ID
#CLS_NM		분류명
#UI_NM	단위명
#DTA_VAL	통계자료값
#DTA_SVAL	통계기호

 

from urllib.request import urlopen
from urllib.parse import urlencode, unquote, quote_plus
import urllib
import requests
import json
import pandas as pd
from datetime import datetime,timedelta
import warnings
import xmltodict # 결과가 xml 형식으로 반환된다. 이것을 dict 로 바꿔주는 라이브러리다


warnings.filterwarnings('ignore')

#https://www.crimestats.or.kr/portal/openapi/openApiActKeyPage.do#

#https://www.crimestats.or.kr/portal/openapi/openApiGuideCdPage.do #통계코드는 해당 기일을 보자.

KEY = ''  #인증키
Type = 'json'
pIndex = '1'
pSize = '100'

STATBL_ID = 'T184463021456318'    #통계표ID
DTACYCLE_CD = 'YY'  #자료주기
#WRTTIME_IDTFR_ID = '2018' #자료시점
#ITM_ID =   #항목ID
#CLS_ID = #분류ID

url = 'https://www.crimestats.or.kr/openapi/Sttsapitbldata.do?KEY={}&Type={}&pIndex={}&pSize={}&STATBL_ID={}&DTACYCLE_CD={}'.format(KEY,Type,pIndex,pSize, STATBL_ID, DTACYCLE_CD)
response = requests.get(url, verify=False)
response.text
#dict_data = xmltodict.parse(response.text) #xml을 json로 변환
#json_data = json.dumps(dict_data, ensure_ascii=False)  #한글이 깨지면 ensure_ascii 코드를 False로 하면됨.
r_data = json.loads(response.text)  #json 변환
data = pd.DataFrame(r_data['Sttsapitbldata'][1]['row'])  #데이터프레임으로 보자
data #완료

#출력값
#STATBL_ID	통계표ID
#DTACYCLE_CD	자료주기
#WRTTIME_IDTFR_ID	자료시점
#ITM_ID		항목ID
#ITM_NM		항목명
#CLS_ID		분류ID
#CLS_NM		분류명
#UI_NM	단위명
#DTA_VAL	통계자료값
#DTA_SVAL	통계기호

 

반응형

댓글