일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 이것이 코딩 테스트다
- Trouble shooting
- beautifulsoup
- stopwords
- SMTP
- semi-project
- Roc curve
- find_all()
- 원소주
- auc
- pos_tag
- IOPub
- json
- category_encoders
- ML
- 크롤링
- Django
- pandas
- 그리디
- aof
- 인공지능
- Logistic linear
- 파일입출력
- 머신러닝
- selenium
- 잡담
- 트러블슈팅
- EarlyStopping
- AI
- PYTHON
- Today
- Total
개발 블로그
[CODELION 강의] [심화] 같이 푸는 PYTHON - 오늘의 날씨 본문
- BeautifulSoup를 이용한 Crawling
- API로 날씨 정보를 가져와서 오늘의 날씨 프로그램
- googletrans라이브러리를 활용한 번역기 프로그램
- SMTP를 활용한 메일 보내기 프로그램
이번엔 두 번째 '오늘의 날씨 프로그램'에 대해 정리해보겠습니다.
날씨 정보를 얻기 위해 OpenWeather라는 사이트의 API를 사용하였습니다.
목차>
목차
01_01 API란?
'API(Application Programming Interface) 는 프로그램과 프로그램을 연결해주는 인터페이스'라고 쉽게 설명할 수 있습니다.
우선 requests
모듈을 추가해주고 사이트에서 발급받은 apikey를 복사해서 붙여넣기 해줍니다.
import requests
city = "Seoul"
apikey = "################################"
api = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={apikey}"
02_01 fstring
fstring은 문자열안에 우리가 원하는 변수를 넣어줄 수 있게 해줍니다.
문자열안에 변수를 사용하고 싶다면 {}중괄호를 사용해야 합니다.
그리고 문자열 앞에 f만 추가해주면 됩니다.
api = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={apikey}"
import requests
city = "Seoul"
apikey = "################################"
api = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={apikey}"
print(api)
result = requests.get(api)
print(result.text)
잘 연결되었다면 print(api)
로 아래와 같이 출력됩니다.
그리고 result.text
로 API로 받아온 내용을 확인할 수 있습니다.
01_03 JSON
JSON(JavaScript Object Notation) : Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷입니다. 웹 어플리케이션에서 데이터를 전송할 때 일반적으로 사용합니다(서버에서 클라이언트로 데이터를 전송하여 표현하려거나 반대의 경우).
import requests
import json
city = "Seoul"
apikey = "################################"
api = f"https://api.openweathermap.org/data/2.5/weather?q={city}&appid={apikey}"
result = requests.get(api) # api를 통해 홈페이지에 데이터 요청
data = json.loads(result.text) # 문자열을 json모듈을 통해 딕셔너리 타입으로 변환
print(type(result.text))
print(type(data))
json.loads()
함수에 매개변수로 api의 text데이터를 전달하고 데이터 타입을 출력한 결과를 보면 문자열 자료형(str)에서 딕셔너리 자료형(dict)로 바뀐 것을 확인 할 수 있습니다.
(JSON에 대해서 알고 싶다면 다음 게시물을 참고 해주세요 : JSON이란?)
01_04 언어, 단위 설정
언어를 한국어로 받아오고 섭씨로 표시된 온도를 화씨로 변환하기 위한 방법을 보겠습니다.
api변수의 뒤쪽에 &을 붙이고 lang={lang}
, units={units}
을 추가해 주시면 됩니다.
lang = "kr" #날씨 정보를 한국어로 받아오기 위해 api에 추가해준다
units = "metric" #날씨 단위를 화씨로 받아오기 위해 api에 추가해준다.
api = f"https://api.openweathermap.org/data/2.5/weather?q={city}&appid={apikey}&lang={lang}&units={units}"
앞에서 본 result.text
의 딕셔너리 내용을 보고 key값을 통해 value를 얻어 낼 수 있습니다.
print(data["name"],"의 날씨입니다.")
print("날씨는 ", data["weather"][0]["description"],"입니다.")
print("현재 온도는 ",data["main"]["temp"],"입니다.")
print("하지만 체감 온도는 ",data["main"]["feels_like"],"입니다.")
print("최저 기온은 ",data["main"]["temp_min"],"입니다.")
print("최고 기온은 ",data["main"]["temp_max"],"입니다.")
print("습도는 ",data["main"]["humidity"],"입니다.")
print("기압은 ",data["main"]["pressure"],"입니다.")
print("풍향은 ",data["wind"]["deg"],"입니다.")
print("풍속은 ",data["wind"]["speed"],"입니다.")
'Programming Language > Python' 카테고리의 다른 글
[Toy_Project] Python 웹크롤링 - EPL순위 가져오기 (0) | 2022.03.21 |
---|---|
[CODELION 강의] [심화] 같이 푸는 PYTHON - 번역기, 메일 보내기 (0) | 2022.03.18 |
[CODELION 강의] [심화] 같이 푸는 PYTHON - 크롤링 (0) | 2022.03.17 |
[CODELION 강의] 일단 만드는 PYTHON (0) | 2022.03.15 |
[CODELION 강의] [기본] 같이 푸는 PYTHON (0) | 2022.03.15 |