Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Lấy thời tiết hiện tại của bất kỳ thành phố nào bằng OpenWeatherMap API trong Python

Trong hướng dẫn này, chúng ta sẽ lấy thông tin thời tiết của một thành phố sử dụng OpenWeatherMap API. Để sử dụng API này, chúng ta cần lấy khóa API bằng cách tạo tài khoản trên trang web của họ.

Tạo tài khoản và lấy API Key của bạn. Miễn phí cho đến 60 cuộc gọi mỗi phút. Bạn phải trả phí nếu muốn nhiều hơn. Đối với hướng dẫn này, phiên bản miễn phí là đủ. Chúng ta cần mô-đun requests cho yêu cầu HTTP và mô-đun json để xử lý phản hồi. Làm theo các bước dưới đây để lấy thời tiết của bất kỳ thành phố nào:

  • Nhập các mô-đun requests và json.

  • Khởi tạo URL cơ sở của API thời tiết: https://api.openweathermap.org/data/2.5/weather?.

  • Khởi tạo tên thành phố và API key.

  • Cập nhật URL cơ sở với API key và tên thành phố.

  • Gửi yêu cầu GET sử dụng phương thức requests.get().

  • Trích xuất thông tin thời tiết từ phản hồi sử dụng mô-đun JSON.

Ví dụ

Xem mã dưới đây:

# nhập requests và json
import requests, json

# URL cơ sở
BASE_URL = "https://api.openweathermap.org/data/2.5/weather?"

# Tên thành phố
THANH_PHO = "Ha_Noi"

# API key
API_KEY = "API_KEY_CUA_BAN"

# cập nhật URL
URL = BASE_URL + "q=" + THANH_PHO + "&appid=" + API_KEY

# yêu cầu HTTP
phan_hoi = requests.get(URL)

# kiểm tra mã trạng thái của yêu cầu
if phan_hoi.status_code == 200:
    # lấy dữ liệu ở định dạng json
    du_lieu = phan_hoi.json()
    # lấy khối main
    main = du_lieu['main']
    # lấy nhiệt độ
    nhiet_do = main['temp']
    # lấy độ ẩm
    do_am = main['humidity']
    # lấy áp suất
    ap_suat = main['pressure']
    # báo cáo thời tiết
    bao_cao = du_lieu['weather']
    print(f"{THANH_PHO:-^30}")
    print(f"Nhiệt độ: {nhiet_do}")
    print(f"Độ ẩm: {do_am}")
    print(f"Áp suất: {ap_suat}")
    print(f"Báo cáo thời tiết: {bao_cao[0]['description']}")
else:
    # hiển thị thông báo lỗi
    print("Lỗi trong yêu cầu HTTP")

Kết quả

Nếu bạn chạy chương trình trên, bạn sẽ nhận được kết quả sau:

----------Ha_Noi-----------
Nhiệt độ: 295.39
Độ ẩm: 83
Áp suất: 1019
Báo cáo thời tiết: mist

Kết luận

Nếu bạn gặp bất kỳ khó khăn nào khi làm theo hướng dẫn, hãy để lại bình luận bên dưới.