일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- IT동아리
- 멋사 서류평가
- 멋사 서류
- 크롤링
- 멋쟁이사자처럼대학
- 멋사10기
- 멋쟁이사자처럼 서류
- 깃허브
- 기사 제목 크롤링
- 멋쟁이사자처럼
- 백엔드
- 알림봇
- API
- 멋쟁이사자처럼10기
- 멋사 합격
- 멋사 10기
- 파이썬 크롤링
- 코딩동아리
- 멋사 면접
- 멋사12
- 멋사
- ㅏㄴ
- 멋쟁이 사자처럼
- discord
- 디스코드봇
- django
- 웹동아리
- 파이썬
- 멋쟁이사자처럼11기
- 멋사11기
- Today
- Total
ACHO.pk devlog
[멋쟁이사자처럼10기] Python_API를 이용해 날씨 정보 받아오기 본문
날씨 정보 사이트에서 API Key 발급받기
OpenAPI를 사용할 때 본인이 누군인지 나타내는 것을 API Key라고 한다.
API 사용에 꼭 필요한 API Key를 발급받기 위해
1. openweather 사이트에 접속해서 회원가입을 한다.
2. 회원가입을 할 때 기재한 이메일로 인증을 완료한다.
3. 마이 페이지에 접속하여 API Key를 발급 받으면 된다.
https://home.openweathermap.org/
API 에 대해 먼저 이해하기
API (Application Programming Interface) = 응용 프로그램 프로그래밍 인터페이스
클라이언트가 서버에 요청을 하고, 서버는 클라이언트에 응답을 해준다.
클라이언트와 서버가 데이터를 원활하게 주고 받기 위해서 API가 서로 간의 데이터가 교환이 될 수 있도록 약속을 하는 것이다.
- API를 만든다 = 사용자가 필요로 하는 기능을 만들고 서버에 올려놓은 뒤에 특정 규약에 따라 사용할 수 있게 하는 것이다.
- API를 사용한다 = 누군가가 만들어 놓은 기능을 특정한 규약에 맞춰 사용하는 것이다.
API 링크 만들기
응답을 원하는 api 주소로 요청을 보내는 것 = api를 콜한다, 부른다
Current Weather Data API 중 지역 이름으로 날씨를 받아오는 API를 사용한다.
API doc = API document(사용 방법 설명서) - API를 사용하기 이전에 꼭 확인해야하는 정보이다.
city = "Seoul"
apikey = "고유 API Key"
##그대로 출력됨
api = "http://api.openweathermap.org/data/2.5/weather?q={city name}&appid={your api key}"
print(api) #http://api.openweathermap.org/data/2.5/weather?q={city name}&appid={your api key}
##{}안에 변수로 변경하기 원하는 이름을 찾고, 원하는 변수의 이름으로 바꿔준다.
api = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={apikey}"
print(api) #http://api.openweathermap.org/data/2.5/weather?q=Seoul&appid=고유 API Key
f-string를 이용해서 {} 문자열 안에 변수를 넣는다
날씨 받아오기
import requests #요청을 보내기 위해 사용
city = "Seoul"
apikey = "################################"
api = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={apikey}"
result = requests.get(api)
print(result)
#<Response [200]>
print(result.text)
#날씨를 나타내는 데이터가 출력됨
API에서 받아온 데이터를 보기 좋게 출력하기1
-json 모듈 (javascript object notation) : 파이썬이 기본적으로 제공하는 모듈이라 pip로 설치할 필요가 없다. 데이터를 주고 받을 때 사용하는 포맷으로 응답값을 보기 좋게 출력할 수 있다.
import requests
import json
city = "Seoul"
apikey = "################################"
api = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={apikey}"
result = requests.get(api)
print(result.text)
print(type(result.text)) #<class 'str'>
data = json.loads(result.text) #응답 받아온 데이터는 문자열이다. 이런 일반 문자열을 json 타입으로 변경한다.
print(type(data)) #<class 'dict'>
API에서 받아온 데이터를 보기 좋게 출력하기2
전체 딕셔너리 안에 '좌표'라는 key가 있다. 이 key 값에 해당되는 value는 하나의 딕셔너리로, '경도', '위도' 값이 각각 key와 value로 나열되어 있는 것을 확인할 수 있다.
Json 코드를 확인하고 이를 사용해 우리가 원하는 값을 출력할 수 있다.
<JSON 코드 블럭>
{
"coord": {
"lon": -122.08,
"lat": 37.39
},
"weather": [
{
"id": 800,
"main": "Clear",
"description": "clear sky",
"icon": "01d"
}
],
"base": "stations",
"main": {
"temp": 282.55,
"feels_like": 281.86,
"temp_min": 280.37,
"temp_max": 284.26,
"pressure": 1023,
"humidity": 100
},
"visibility": 10000,
"wind": {
"speed": 1.5,
"deg": 350
},
"clouds": {
"all": 1
},
"dt": 1560350645,
"sys": {
"type": 1,
"id": 5122,
"message": 0.0139,
"country": "US",
"sunrise": 1560343627,
"sunset": 1560396563
},
"timezone": -25200,
"id": 420006353,
"name": "Mountain View",
"cod": 200
}
API를 사용해 날짜 정보를 출력하는 프로그램
https://github.com/Acho-mj/Likelion10-study/tree/main/Python%20API
언어 및 단위 변경하기
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"""
'멋쟁이사자처럼' 카테고리의 다른 글
[멋쟁이사자처럼10기] Python를 이용해서 언어를 감지하고, 번역하기 (0) | 2022.05.07 |
---|---|
[멋쟁이사자처럼10기] Python으로 검색어 뉴스 기사 제목 크롤링 + 엑셀 파일 저장 (0) | 2022.05.02 |
[멋쟁이사자처럼10기] Python 크롤링으로 뉴스 기사 제목 추출하기 (0) | 2022.05.01 |
[멋쟁이사자처럼10기] Html/CSS로 나만의 이력서 만들기 (0) | 2022.04.11 |
[멋쟁이사자처럼10기] Python 리스트 딕셔너리 심화 (0) | 2022.04.10 |