반응형
서울시 권역별 실시간 대기환경 현황
https://data.seoul.go.kr/dataList/OA-2219/S/1/datasetView.do
① row 데이터 중에서 MSRDT(날짜), MSRSTE_NM(지역), PM10(미세먼지), IDEX_NM(상태) 4가지 데이터를 파이썬 list로 만들어서 콘솔에 출력하시오.
② row 데이터 중에서 MSRDT(날짜), MSRSTE_NM(지역), PM10(미세먼지), IDEX_NM(상태) 4가지 데이터를 DB에 저장하시오. (pandas로 변경해서 db에 저장하는 것을 추천)
③ 추가로 weather.csv 파일로 만드시오.
(1) requests 모듈로 데이터 다운받기
import requests
import sqlalchemy as db
import pandas as pd
# 1. requests 모듈로 데이터 다운받기
url = "http://openapi.seoul.go.kr:8088/6d424f64706765743730746d476f47/json/RealtimeCityAir/1/5?END_INDEX=1"
response = requests.get(url)
parseResponse = response.json() #json 문자열을 파이썬 오브젝트(딕셔너리)로 변경
(2) 데이터 정제하기
# 2. 데이터 정제하기
row = parseResponse["RealtimeCityAir"]["row"]
weather = []
print(row)
for r in row:
dict = {}
dict["MSRDT"] = r["MSRDT"]
dict["MSRSTE_NM"] = r["MSRSTE_NM"]
dict["PM10"] = r["PM10"]
dict["IDEX_NM"] = r["IDEX_NM"]
weather.append(dict)
print(weather)
(3) 판다스로 데이터 변경하기 (csv, db에 데이터 옮기기 편함)
# 3. 판다스로 데이터 변경하기 (csv, db에 데이터 옮기기 편함)
weather_dataFrame = pd.DataFrame(weather)
print(weather_dataFrame)
(4) 디비 연결하기
# 4. 디비 연결하기
engine = db.create_engine(
"mariadb+mariadbconnector://python:python1234@127.0.0.1:3306/pythondb")
(5) 인서트하기
# 5. 인서트하기
weather_dataFrame.to_sql("weather", engine, index=False, if_exists="replace")
(6) csv 파일로 만들기
# 6. csv 파일로 만들기
weather_dataFrame.to_csv("weather.csv")
(7) 불러오기
# 7. 불러오기
weather_dataFrame_entity = pd.read_sql("select * from weather", engine)
print(weather_dataFrame_entity)
반응형
'Study > 연습' 카테고리의 다른 글
여기어때 홈페이지 크롤링 연습 (1) | 2021.11.15 |
---|---|
빅데이터시스템개발 - test, train Data target/Shuffle/저장 (0) | 2021.10.26 |
빅데이터 저장 시스템 출력 - 기사 제목 출력 (0) | 2021.09.29 |