https://www.data.go.kr/index.do
원하는 공공데이터를 요청한 뒤 사용하면 됩니다.
https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15043376
본인은 코로나 관련 공공데이터를 요청했고 승인 받은 다음 사용하는 중입니다.
#샘플 코드!
import requests
url = 'http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19InfStateJson'
params ={'serviceKey' : '서비스키', 'pageNo' : '1', 'numOfRows' : '10', 'startCreateDt' : '20200310', 'endCreateDt' : '20200315' }
response = requests.get(url, params=params)
print(response.content)
딕셔너리
형태로 만든 뒤 다시 json형태로 만들어보자response = requests.get(url, params = params)
content = response.content
dic = xmltodict.parse(content)
jsonString = json.dumps(dic['response']['body']['items'])
json_object = json.loads(jsonString)
response.content
의 경우엔 xml출력 형식으로 넘어옵니다. 이를 dictionary 형태로 변환시켜줍니다.xmltodict
를 사용해 xml형식으로 적혀있는 변수를 딕셔너리로 변환시켜줍니다.JSON 문자열
로 만들어 준다.)json.loads
의 경우엔 해당 json 형태의 문자열을 읽어준다. (이때 json.load는 json 파일을 읽어준다고 한다.)import requests, xmltodict,json
url = 'http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19InfStateJson'
params = {
'serviceKey' : '서비스키를 넣어주세요.', #필수
'pageNo' : '1', #선택
'numOfRows' : '10',#선택
'startCreateDt' : '20220801',#선택
'endCreateDt' : '20220809' }#선택
response = requests.get(url, params = params)
#xml -> json
content = response.content
dic = xmltodict.parse(content)
jsonString = json.dumps(dic['response']['body']['items'])
json_object = json.loads(jsonString)
for i in json_object['item']:
print(f"날짜: {i['createDt']}")
print(f"감염자 수: {i['decideCnt']}")
print()
출력
날짜: 2022-08-09 09:06:13.288
감염자 수: 20694239
날짜: 2022-08-08 09:03:33.354
감염자 수: 20544342
날짜: 2022-08-07 09:06:42.352
감염자 수: 20489050
날짜: 2022-08-06 09:05:09.8
감염자 수: 20383552
날짜: 2022-08-05 08:19:11.853
감염자 수: 20272904
날짜: 2022-08-04 08:58:06.376
감염자 수: 20160037
날짜: 2022-08-03 09:01:06.599
감염자 수: 20052177
날짜: 2022-08-02 09:02:53.088
감염자 수: 19932291
날짜: 2022-08-01 09:00:03.794
감염자 수: 19820538