import requests
import json
city = "Seoul"
apikey = "################################"
lang = "kr"
# units - metric &기호를 통해 기능 추가 화씨에서 섭씨로
api = f"""http://api.openweathermap.org/data/2.5/\
weather?q={city}&appid={apikey}&lang={lang}&units=metric"""
result = requests.get(api)
# print(result.text)
data = json.loads(result.text)
# 지역 : name
print(data["name"],"의 날씨입니다.")
# 자세한 날씨 : weather - description
print("날씨는 ",data["weather"][0]["description"],"입니다.")
# 현재 온도 : main - temp
print("현재 온도는 ",data["main"]["temp"],"입니다.")
# 체감 온도 : main - feels_like
print("하지만 체감 온도는 ",data["main"]["feels_like"],"입니다.")
# 최저 기온 : main - temp_min
print("최저 기온은 ",data["main"]["temp_min"],"입니다.")
# 최고 기온 : main - temp_max
print("최고 기온은 ",data["main"]["temp_max"],"입니다.")
# 습도 : main - humidity
print("습도는 ",data["main"]["humidity"],"입니다.")
# 기압 : main - pressure
print("기압은 ",data["main"]["pressure"],"입니다.")
# 풍향 : wind - deg
print("풍향은 ",data["wind"]["deg"],"입니다.")
# 풍속 : wind - speed
print("풍속은 ",data["wind"]["speed"],"입니다.")
이번에는 날씨정보를 불러오는 API 를 통해 오늘의 날씨를 알려보는 프로그램을 작성하겠습니다.
import requests
import json
먼저 주소 요청을 get 하기 위해 request 모듈과 받아온 json형식의 데이터를 활용하기 위해 json 모듈을 호출해주었습니다.
city = "Seoul"
apikey = "################################"
lang = "kr"
# units - metric &기호를 통해 기능 추가 화씨에서 섭씨로
api = f"""http://api.openweathermap.org/data/2.5/\
weather?q={city}&appid={apikey}&lang={lang}&units=metric"""
먼저 원하는 장소를 변수에 선언을 해주고, 해당 사이트에서 발급받은 api 키를 사용하기 위해서 apikey 를 변수에 담고 원하는 언어를 담았습니다.
그리고 api 를 불러오는데, 우리는 섭씨가 직관적이므로 끝에 units=metric을 적어주면 됩니다.
사용한 api키 사이트는 다음과 같습니다.
해당 사이트에서 회원가입 한 후에, api키를 발급한 뒤에 API 를 클릭 한 뒤에 Current Weather Data 의 API doc 를 클릭하고,
다음으로는 해당 API를 가져와 본인의 api 키와 원하는 기능들을 추가하여 프로그램을 구현하면 됩니다.
본인은 city 와 lang 을 추가하여 해당 도시의 날씨를 원하는 언어로 요청받을수 있게 하였습니다.
result = requests.get(api)
# print(result.text)
data = json.loads(result.text)
# 지역 : name
print(data["name"],"의 날씨입니다.")
# 자세한 날씨 : weather - description
print("날씨는 ",data["weather"][0]["description"],"입니다.")
# 현재 온도 : main - temp
print("현재 온도는 ",data["main"]["temp"],"입니다.")
# 체감 온도 : main - feels_like
print("하지만 체감 온도는 ",data["main"]["feels_like"],"입니다.")
# 최저 기온 : main - temp_min
print("최저 기온은 ",data["main"]["temp_min"],"입니다.")
# 최고 기온 : main - temp_max
print("최고 기온은 ",data["main"]["temp_max"],"입니다.")
# 습도 : main - humidity
print("습도는 ",data["main"]["humidity"],"입니다.")
# 기압 : main - pressure
print("기압은 ",data["main"]["pressure"],"입니다.")
# 풍향 : wind - deg
print("풍향은 ",data["wind"]["deg"],"입니다.")
# 풍속 : wind - speed
print("풍속은 ",data["wind"]["speed"],"입니다.")
그 후에 요청 받은 데이터를 변수에 담은 후에, 해당 데이터를 json 형식으로 읽어 활용하였습니다.
json 형식은 딕셔너리 형태로 되어있는데, "name" key에는 Seoul 의 value가 있고, 온도는 "main" key안에 "temp" key에 온도에 정보가 있다고 생각하면 됩니다.
ex) data = { "name" : "Seoul" , "main" : { "temp" : "온도" } } 이런식으로 json을 활용하여 데이터를 다뤄봅시다.
'TIL > Python' 카테고리의 다른 글
파이썬 Email 전송 - smtplib (0) | 2022.09.17 |
---|---|
파이썬 자동 번역기능 googletrans (0) | 2022.09.17 |
Python 웹 크롤링 - Beautiful Soup (1) | 2022.09.17 |