import requests, xmltodict, json
def get_corona_data(startCreateDt, endCreateDt):
url = 'http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19SidoInfStateJson'
params = {
'serviceKey': 'dfPDXfzKqyDm807A3Q9rheK45I9SMsUIMCgWA4JuA4rXcEF2ZPqRBwbEPhfGzVdg7lzwpKTL7susIXvSruU+/w==',
'pageNo': '1',
'numOfRows': 10,
'startCreateDt': startCreateDt,
'endCreateDt': endCreateDt,
}
날짜 인자 함수로 호출
res = requests.get(url, params=params)
dict_data = xmltodict.parse(res.text)
json_data = json.dumps(dict_data)
dict_data = json.loads(json_data)
xml dict로 변환 -> dict(튜플) jason으로 변환 -> jason dict로 다시 변환
totalCount = dict_data['response']['body']['totalCount']
if totalCount == '0':
return False
# 지역 정보를 담은 리스트
area_data = dict_data['response']['body']['items']['item']
area_data.reverse()
return area_data
from flask import Flask, render_template
import corona_data
from datetime import date, timedelta
# 앱생성
app = Flask(__name__)
# url 라우터
@app.route('/')
def index():
now = date.today()
now_str = now.strftime('%Y%m%d')
# 오늘 날짜로 요청
data = corona_data.get_corona_data(now_str, now_str)
print(data)
# 없으면 어제날짜로 요청
if not data:
yesterday = now - timedelta(days=1)
yesterday_str = yesterday.strftime('%Y%m%d')
print(yesterday_str)
data = corona_data.get_corona_data(yesterday_str, yesterday_str)
print(data)
# 첫번째 데이터 제외
return render_template('index.html', data=data[1:])
현재의 날짜와 시간을 문자열로 출력 - strftime 메서드
{{data}}
{% for d in data%}{{d.gubun}},{% endfor %}
{{d.qurRate is number}} ----숫자, 스트링 확인법
<!-- str로 출력-->
{% for d in data%}"{{d.gubun}}",{% endfor %}
html에 jason table 출력
dict_data['response']['body']['items']['item']['gubun]데이터 출력
{{d.qurRate|float}}
파이썬 내장함수 float()를 이용해서 숫자나 문자열을 실수형 (Float)으로 변환
<class 'int'>
2
<class 'float'>
2.0
자바스크립트 차트샘플 사이트
chartjs
참고 영상
반원의코딩랜드