반응형
반응형

[python] 공공데이터 OPEN API의 xml 을 DataFrame으로 변환하기(feat. 코로나 확진자 수)

 

 

https://greendreamtrre.tistory.com/268

 

Python (파이썬) 공공데이터 수집 (Open API - XML)

공공데이터포털의 특징은 자료를 활용을 요약하자면 1. 회원 가입 후 '사용자 인증키'를 생성해야한다. 2. 이후 원하는 데이터를 '활용 신청'을 해서 승인이 떨어지고 활용 권한을 획득해야한다.

greendreamtrre.tistory.com

 

# 모듈 import
import requests
import pprint


#인증키 입력
encoding = '발급받은 인코딩 인증키를 복사하여 붙여넣기 해 주세요.'
decoding = '발급받은 디코딩 인증키를 복사하여 붙여넣기 해 주세요.'

#url 입력
url = 'http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19SidoInfStateJson'
params ={'serviceKey' : decoding , 'pageNo' : '1', 'numOfRows' : '10', 'startCreateDt' : '2020', 'endCreateDt' : '20211103' }

response = requests.get(url, params=params)

# xml 내용
content = response.text

# 깔끔한 출력 위한 코드
pp = pprint.PrettyPrinter(indent=4)
#print(pp.pprint(content))

### xml을 DataFrame으로 변환하기 ###
from os import name
import xml.etree.ElementTree as et
import pandas as pd
import bs4
from lxml import html
from urllib.parse import urlencode, quote_plus, unquote

## 각 컬럼 값 ## (포털 문서에서 꼭 확인하세요)
"""
SEQ : 게시글번호(국내 시도별 발생현황 고유값)
CREATE_DT: 	등록일시분초
DEATH_CNT: 	사망자 수
GUBUN: 	시도명(한글)
GUBUN_CN: 	시도명(중국어)
gubunEn: 시도명(영어)
INC_DEC: 전일대비 증감 수
ISOL_CLEAR_CNT: 격리 해제 수
QUR_RATE: 10만명당 발생률
STD_DAY: 기준일시
UPDATE_DT: 수정일시분초
DEF_CNT: 확진자 수
ISOL_ING_CNT: 격리중 환자수
OVER_FLOW_CNT: 해외유입 수
LOCAL_OCC_CNT: 지역발생 수

""" 

#bs4 사용하여 item 태그 분리

xml_obj = bs4.BeautifulSoup(content,'lxml-xml')
rows = xml_obj.findAll('item')
print(rows)
"""
# 컬럼 값 조회용
columns = rows[0].find_all()
print(columns)
"""

# 각 행의 컬럼, 이름, 값을 가지는 리스트 만들기
row_list = [] # 행값
name_list = [] # 열이름값
value_list = [] #데이터값

# xml 안의 데이터 수집
for i in range(0, len(rows)):
    columns = rows[i].find_all()
    #첫째 행 데이터 수집
    for j in range(0,len(columns)):
        if i ==0:
            # 컬럼 이름 값 저장
            name_list.append(columns[j].name)
        # 컬럼의 각 데이터 값 저장
        value_list.append(columns[j].text)
    # 각 행의 value값 전체 저장
    row_list.append(value_list)
    # 데이터 리스트 값 초기화
    value_list=[]

#xml값 DataFrame으로 만들기
corona_df = pd.DataFrame(row_list, columns=name_list)
print(corona_df.head(19)) 

#DataFrame CSV 파일로 저장
corona_df.to_csv('corona_kr.csv', encoding='utf-8-sig')
반응형
반응형

간혹 폭우나 안개, 눈 같은 게 자네의 앞길을 막을 때도 있겠지.
그러면 자네에 앞서 모든 조종사들이
그와 같은 상황을 겪었다는 사실을 생각하게.
그리고 스스로에게 그냥 이렇게 말해.
“다른 사람이 해냈다면 내가 해낼 가능성도 언제나 열려있는 것이다’라고 말일세.
- 생텍쥐페리, ‘인간의 대지’에서


과정이 너무 쉬우면 큰 성공은 어렵습니다.
누구나 다 할 수 있기 때문입니다.
누구나 다 할 수 있는 일에서의 성공 과실은 작을 수 밖에 없습니다.
결국 눈에 띌 정도의 커다란 성공 앞에는 그만큼 큰 고통,
장애, 역경이 놓일 수밖에 없습니다.
추구하는 목표가 커질수록 장벽도 높아집니다.

반응형
반응형

사랑하는 사람은 안 따집니다.
사랑은 허비할 줄 아는 겁니다.
기꺼이 허비하는 것입니다. 기쁨으로
내 시간을 드리는 것, 내 재능을 드리는 것,
내 모든 걸 드리는 게 아깝지 않습니다.
가성비나 효율성을 따지지
않기로 작정한 겁니다.


- 조정민의《답답답》중에서 -


* 따지는 것은 거래입니다.
주고받기를 겨루는 것은 흥정입니다.
사랑은 거래도 흥정도 아닙니다. 주는 것이
기쁨이고 받는 것은 더 기쁜 것, 주면서 감사하고
받으면서는 더 감사한 것이 진정한 사랑입니다.
사랑은 주면 줄수록 우물이 깊어집니다.
달콤한 샘물이 마르지 않습니다.

반응형

'아침편지' 카테고리의 다른 글

차 맛이 좋아요  (0) 2022.12.14
'우리 팀'의 힘  (0) 2022.12.13
삶을 풀어나갈 기회  (0) 2022.12.12
나이가 든다는 것  (0) 2022.12.09
화가 날 때는  (0) 2022.12.08
반응형

쓰지 않은 근육을
푸는 방법은 호흡을 바라보며
굳어져 있는 부분(제일 아픈 부분)을
관찰하면서 호흡을 해준다. 호흡과 근육이
하나가 되면 아픔은 아픔대로 느끼면서
굳어진 부분의 움직임이 세세하게
느껴지고 천천히 풀어지는 게
느껴진다.


- 김재덕의《나는 오늘도 수련하러 갑니다》중에서 -


* 스트레칭을 하다가
근육이 아픈 순간이 오기도 합니다.
그땐 호흡을 하며 근육을 관찰해야 통증을
풀어줄 수 있습니다. 삶이 힘든 순간에도
마찬가지입니다. 잠시 그 자리에 멈춰서 나를
돌아보아야 합니다. 쓰지 않은 근육처럼
굳어버린 나의 습관, 생각, 감정들을
찾아서 변화시켜야 합니다. 삶을
풀어나갈 기회입니다.

반응형

'아침편지' 카테고리의 다른 글

'우리 팀'의 힘  (0) 2022.12.13
사랑하는 사람은 안 따진다  (0) 2022.12.12
나이가 든다는 것  (0) 2022.12.09
화가 날 때는  (0) 2022.12.08
파워냅(Power Nap)  (0) 2022.12.07
반응형

React Developer Tools

https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=en 

 

React Developer Tools

Adds React debugging tools to the Chrome Developer Tools. Created from revision 47f63dc54 on 12/6/2022.

chrome.google.com

 

반응형
반응형

제주특별자치도  교통정보센터 - 제주 전지역 도로 CCTV 

 

http://www.jejuits.go.kr/jido/mainView.do?DEVICE_KIND=CCTV 

 

페이지 로딩중 - 제주특별자치도 교통정보센터

064-728-3248 제주시 고마로 19길 5 (일도2동 409-11) 실시간 주차 가능 대수 일반 : 15 경차 : 1 대형 : 0 긴급 : 0 장애 : 1 여성 : 0 기타 : 0 운영정보 주차면수 : 125 평일운영 : 12:00 ~ 21:00 휴일운영 : 12:00 ~ 21

www.jejuits.go.kr

반응형

+ Recent posts